给定一个大小为 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; } }
摩尔投票法