169. 多数元素

浪尽此生 提交于 2020-03-04 10:31:39

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入: [3,2,3]
输出: 3
解题过程:
1.利用hashmap 并且利用其计数的方式,并且定义maxnum和maxcount=0;

class Solution {
    public int majorityElement(int[] nums) {
    //哈希表
    //定义一个哈希表
    Map<Integer, Integer> map = new HashMap<>();
    // maxNum 表示元素,maxCount 表示元素出现的次数
    int maxNum = 0, maxCount = 0;
    //遍历数组
    for (int num: nums) {
        //Map.getOrDefault(Object key, V defaultValue)方法的作用是:

      int count = map.getOrDefault(num, 0) + 1;
      map.put(num, count);
      if (count > maxCount) {
        maxCount = count;
        maxNum = num;
      }
    }
    return maxNum;
  }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!