1509. 三次操作后最大值与最小值的最小差

给你一个数组 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])

 

你可能感兴趣的:(Leetcode)