※ 引述《oin1104 (是oin的说)》之铭言:
: 题目:
: 给你一串阵列
: 你可以对任意三个元素改成任意值
: 改完之后最大跟最小相差的最小值是多少
: 思路:
: 先sort
: 发现改中间的值没屁用
: 然后就可以只改最大最小的
: 要改成什么值根本不重要
: 然后要改大的小的哪边的呢
: 其实 把所有情况列出来 发现只有四种
: 所以直接试试看就可以了
: ```cpp
: class Solution {
: public:
:     int minDifference(vector<int>& nums)
:     {
:         int len = nums.size();
:         if(len <= 4)return 0 ;
:         sort(nums.begin(),nums.end());
:         int l = 0;
:         int r = len-1;
:         int res = INT_MAX;
:         for(int i = 0 ; i < 4 ; i ++)
:         {
:             res = min(res,nums[r-i] - nums[l+3-i]);
:         }
:         return res;
:     }
: };
: ```
思路:
差不多 其实就四种可能:最大-第四小 第二大-第三小 第三大-第二小 第四大-最小
你能改3个数 所以就选最小的 然后改掉其他三个
Python Code:
class Solution:
    def minDifference(self, nums: List[int]) -> int:
        if len(nums) <= 4:
            return 0
        nums.sort()
        return min(b - a for a, b in zip(nums[:4], nums[-4:]))