Java教程

众数(23)

本文主要是介绍众数(23),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目描述

给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
示例 1:
输入:[3,2,3]
输出:[3]

解题

class Solution {
    public List<Integer> majorityElement(int[] nums) {
int n = nums.length;
Map<Integer,Integer> map = new HashMap<>();
List<Integer> l = new ArrayList();
for(int i= 0;i<n;i++){
 map.put(nums[i],map.getOrDefault(nums[i],0)+1);
    int temp = map.get(nums[i]);

if(temp>n/3 && !l.contains(nums[i])){
     l.add(nums[i]);
}
 }
 return l;
    }
}

摩尔投票法

这篇关于众数(23)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!