给你一个数组
nums
,每次操作你可以选择nums
中的任意一个元素并将它改成任意值。请你返回三次操作后,
nums
中最大值与最小值的差的最小值。示例 1:
输入:nums = [5,3,2,4]
输出:0
解释:将数组 [5,3,2,4] 变成 [2,2,2,2].
最大值与最小值的差为 2-2 = 0 。#改变成任意元素等于删除
现在只能改变3个数,先排序(这样才能得到最大最小值)
1.直接改变前3个数
2.之后改变后3个数
3.改变1个前边的数2个后面的数
4.改变2个前面的数1个后面的数
class Solution:
def minDifference(self, nums: List[int]) -> int:
if len(nums)<=4:return 0
#将一些数变成任意值其实等价于把这些数从数组中删除了
nums.sort()
return min(nums[-1]-nums[3],nums[-2]-nums[2],nums[-3]-nums[1],nums[-4]-nums[0])