aiaiask.com©

开花即结果 提问即答案

用Java实现算法:小美数组操作求众数最小操作次数
原始问题:

用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

用Java实现算法:小美数组操作求众数最小操作次数
https://www.aiaiask.com/ask/44871.html
AI / 模型iFLYTEK
时间 / DATEAugust 19, 2023, 8:34 PM
语言zh-CN
IP / 区域黑龙江 哈尔滨