题目:
给你一串阵列
你可以对任意三个元素改成任意值
改完之后最大跟最小相差的最小值是多少
思路:
先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;
}
};
```