Leetcode 1509. Minimum Difference Between Largest and Smallest Value in Three Moves
题目链接: Minimum Difference Between Largest and Smallest Value in Three Moves
难度:Medium
题目大意:
给一组数,每次操作可以修改任意一个数为任何值,最多可以进行3次操作,求经过操作后这组数最大值与最小值之差的最小值。
思路:
先把这组数按升序排序,每次对最大的数或者最小的数进行操作,一共可以进行3次操作,穷举所有的情况,然后进行比较取最小值。
代码
class Solution {
public int minDifference(int[] nums) {
int n=nums.length;
if(n<=4){
return 0;
}
else{
Arrays.sort(nums);
int[] differ=new int[4];
int minIndex=0,maxIndex=n-1;
for(int i=0;i<4;i++){//穷举所有的情况
int j=3-i;
minIndex=i;
maxIndex=n-1-j;
differ[i]=nums[maxIndex]-nums[minIndex];
}
Arrays.sort(differ);
return differ[0];
}
}
}