※ 引述《oin1104 (是oin的说)》之铭言:
: 题目:
: 给你一串阵列
: 你可以对任意三个元素改成任意值
: 改完之后最大跟最小相差的最小值是多少
思路:
先sort
然后比较
最大 - 第四小
第二大 - 第三小
第三大 - 第二小
第四大 - 第一小
找最小 = 改其他三组让他们失效
Code:
impl Solution {
pub fn min_difference(mut nums: Vec<i32>) -> i32 {
nums.sort_unstable();
let nums_len = nums.len();
if nums_len <= 4 {
return 0;
}
let mut result = i32::MAX;
for i in 0..=3 {
result = result.min(nums[nums_len - 4 + i] - nums[i]);
}
result
}
}