50-38

mac2022-06-30  22

50题 第38天 求众数

给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。链接: 力扣.我的代码如下: class Solution { public int majorityElement(int[] nums) { Map<Integer,Integer> map = new HashMap<Integer,Integer>(); int n = nums.length; for(int num : nums) { Integer count = map.get(num); if(count == null) count =1; else count++; map.put(num,count); if(map.get(num) > n/2) return num; } return 0; } }

运行结果

考虑到数与出现次数存在的映射关系,采用哈希表来做。感觉并不是很难实现,通过一次次的刷新迭代。注意把判断大于二分之n放在循环里面,因为只能有一个数满足众数的条件。
最新回复(0)