淘先锋技术网

首页 1 2 3 4 5 6 7

众数是指在一组数据中出现次数最多的数,重数是指一个数在一组数据中出现的次数。

在Java中,求众数和重数可以通过编写代码实现。

// 求众数
public static int majorityElement(int[] nums) {
int majority = nums[0];
int count = 1;
for (int i = 1; i< nums.length; i++) {
if (count == 0) {
majority = nums[i];
count = 1;
} else if (nums[i] == majority) {
count++;
} else {
count--;
}
}
return majority;
}
// 求重数
public static int getFrequency(int[] nums, int num) {
int count = 0;
for (int i = 0; i< nums.length; i++) {
if (nums[i] == num) {
count++;
}
}
return count;
}

使用以上代码可通过传入一个数组来求出其中的众数和重数。

求众数的代码采用了摩尔投票算法,该算法的时间复杂度为O(n),空间复杂度为O(1)。

求重数的代码则通过遍历数组,统计指定数字出现的次数来实现。其时间复杂度为O(n)。