Description

Submission
class Solution {
public:
int smallestRangeII(vector<int>& A, int K) {
sort(A.begin(), A.end());
int n = A.size();
int ret = A.back() - A[0];
for(int i = 0; i < n-1; ++i) {
int upper = max(A[i] + K, A.back() - K);
int lower = min(A[i+1]-K, A[0]+K);
ret = min(ret, upper - lower);
}
return ret;
}
};