剑指Offer39数组中出现次数超过一次的数组

Posted 小布丁value

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer39数组中出现次数超过一次的数组相关的知识,希望对你有一定的参考价值。

数组中出现次数超过一次的数组

public  static int majorityElement(int [] nums){
       Map<Integer, Integer> map = countNums(nums);
       Map.Entry<Integer,Integer> majorityEntry = null;
       for(Map.Entry<Integer,Integer> entry:map.entrySet()){
           if(majorityEntry==null||entry.getValue()>majorityEntry.getValue()){
               majorityEntry=entry;
           }
       }
       return majorityEntry.getKey();
   }
   public static Map<Integer,Integer> countNums(int [] nums){
        Map<Integer,Integer> map=new HashMap<>();
        for(int num:nums){
            if(!map.containsKey(num)){
                map.put(num,1);
            }else{
                map.put(num,map.get(num)+1);
            }
        }
        return map;
   }


确实有点低级,后面补充

以上是关于剑指Offer39数组中出现次数超过一次的数组的主要内容,如果未能解决你的问题,请参考以下文章

Java 剑指offer(39) 数组中出现次数超过一半的数字

剑指 Offer 39. 数组中出现次数超过一半的数字

剑指 Offer 39. 数组中出现次数超过一半的数字

剑指Offer:数组中出现次数超过一半的数字39

剑指Offer对答如流系列 - 数组中数字出现的次数

剑指 Offer 39. 数组中出现次数超过一半的数字