0908.最小差值I
描述
给定一个整数数组 A
,对于每个整数 A[i]
,我们可以选择任意 x
满足 -K <= x <= K
,并将 x
加到 A[i]
中。
在此过程之后,我们得到一些数组 B
。
返回 B
的最大值和 B
的最小值之间可能存在的最小差值。
实例
输入:A = [1], K = 0
输出:0
解释:B = [1]
输入:A = [0,10], K = 2
输出:6
解释:B = [2,8]
输入:A = [1,3,6], K = 3
输出:0
解释:B = [3,3,3] 或 B = [4,4,4]
提示
- `1 <= A.length <= 10000``
- ``0 <= A[i] <= 10000`
- 0 <= K <= 10000`
题解
- 当
A
的长度小于等于1
时,直接返回0
- 获得
A
的最大值和最小值,两者的差值减去两倍的K
,获得结果与0
取较大值
public int smallestRangeI(int[] A, int K) {
if (A.length <= 1)
return 0;
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i:A){
max = i>max ? i : max;
min = i<min ? i : min;
}
return Math.max(0,(max-min)-2*K);
}