题目
给你一个整数数组 A,对于每个整数 A[i],我们可以选择处于区间 [-K, K] 中的任意数 x ,将 x 与 A[i] 相加,结果存入 A[i] 。
在此过程之后,我们得到一些数组 B。
返回 B 的最大值和 B 的最小值之间可能存在的最小差值。
示例1:
1 | 输入:A = [1], K = 0 |
示例2:
1 | 输入:A = [0,10], K = 2 |
示例3:
1 | 输入:A = [1,3,6], K = 3 |
提示:
1 <= A.length <= 10000
0 <= A[i] <= 10000
0 <= K <= 10000
解法
解法一:
对数组排序,最大值和最小值的差值一定是A[A.length - 1] - K 和A[0] + K的差值。
如果这个差值小于0的话,那么最小差值就是0。因为A - B < 0 其实就是B - A > 0.那就还不是最小的。
JAVA
1 | public int smallestRangeI(int[] A, int K) { |