最小差值 I
给你一个整数数组 nums,请你给数组中的每个元素 nums[i] 都加上一个任意数字 x (-k <= x <= k),从而得到一个新数组 result 。
返回数组 result 的最大值和最小值之间可能存在的最小差值。
示例:
输入:nums = [1], k = 0
输出:0
解释:result = [1]
思路
解法一:
- 判断数组的最大值与最小值的差值diff
- 若diff大于等于k的2倍,则证明可以取到两个数相等的情况,返回结果为0
- 若diff小于k的2倍,则返回diff - k的2倍
class Solution:
def smallestRangeI(self, nums: List[int], k: int) -> int:
if not nums or len(nums) < 1:
return 0
val_max = max(nums)
val_min = min(nums)
if val_max - val_min <= 2*k:
return 0
else:
return val_max -val_min - 2*k