用Java实现算法:小美数组操作求众数最小操作次数
import java.util.Arrays;
public class MajorityElement {
public static void main(String[] args) {
int[] nums = {2, 3, -1, 2, 1, 3};
int minOperations = findMinOperations(nums);
System.out.println(minOperations);
}
public static int findMinOperations(int[] nums) {
int n = nums.length;
Arrays.sort(nums); // 将数组排序
int mid = nums[n / 2]; // 中位数即为众数
int minOperations = 0;
// 计算每个元素与中位数的差值的绝对值之和
for (int i = 0; i < n; i++) {
minOperations += Math.abs(nums[i] - mid);
}
return minOperations;
}
}
// 输出结果为:6
// 解释:将数组变为[-1, 1, 2, 2, 3, 3],众数为2和3,操作次数为6
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。