0908. Smallest Range I #
题目 #
- 给你一个整数数组
nums
,和一个整数k
。 - 在一个操作中,您可以选择
0 <= i < nums.length
的任何索引i
。将nums[i]
改为nums[i] + x
,其中x
是一个范围为[-k, k]
的整数。对于每个索引i
,最多 只能 应用 一次 此操作。 nums
的 分数 是nums
中最大和最小元素的差值。- 在对
nums
中的每个索引最多应用一次上述操作后,返回nums
的最低 分数 。
思路 #
模拟 #
代码 #
模拟 #
class Solution {
public int smallestRangeI(int[] nums, int k) {
int minimum = Integer.MAX_VALUE, maximum = Integer.MIN_VALUE;
for (int num: nums) {
minimum = Math.min(minimum, num);
maximum = Math.max(maximum, num);
}
return Math.max(0, maximum-minimum-2*k);
}
}