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);
}
}