C++刷LeetCode(1509. 三次操作后最大值与最小值的最小差)【数学】
题目描述:给你一个数组 nums ,每次操作你可以选择 nums 中的任意一个元素并将它改成任意值。
请你返回三次操作后, nums 中最大值与最小值的差的最小值。
示例 1:
输入:nums =
输出:0
解释:将数组 变成 .
最大值与最小值的差为 2-2 = 0 。
示例 2:
输入:nums =
输出:1
解释:将数组 变成 。
最大值与最小值的差为 1-0 = 1 。
示例 3:
输入:nums =
输出:2
示例 4:
输入:nums =
输出:1
提示:
1 <= nums.length <= 10^5
-10^9 <= nums <= 10^9
class Solution {
public:
int minDifference(vector<int>& nums) {
if (nums.size() < 5) return 0;
sort(nums.begin(), nums.end());
int res = INT_MAX;
for (int i = 0; i <= 3; i++) {
res = min(res, nums - nums);
}
return res;
}
};
参考链接:https://leetcode-cn.com/problems/minimum-difference-between-largest-and-smallest-value-in-three-moves/solution/minimum-difference-by-ikaruga/ 智商不够是硬伤{:10_266:}
页:
[1]