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];}}
}