題目:
給你一串陣列
你可以對任意三個元素改成任意值
改完之後最大跟最小相差的最小值是多少
思路:
先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;
}
};
```