LeetCode-169找出数组中出现次数大于? n/2 ?次的数

Posted 当代英雄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-169找出数组中出现次数大于? n/2 ?次的数相关的知识,希望对你有一定的参考价值。

// method 1
    public static int majorityElement_1(int[] num) {

        int major=num[0], count = 1;
        
        for (int i=1; i<num.length;i++) {
            if (count == 0) {
                count++;
                major=num[i];
            } else if (major == num[i]) {
                count++;
            } else count--;
            
        }
        return major;
    }
    
    // method 2
    public static int majorityElement_2(int[] nums) {
        Arrays.sort(nums);
        return nums[nums.length/2];
    }
    
    // method 3
    public static int majorityElement_3(int[] nums) {
         Map<Integer, Integer> myMap = new HashMap<Integer, Integer>();
            //Hashtable<Integer, Integer> myMap = new Hashtable<Integer, Integer>();
            int ret=0;
            for (int num: nums) {
                if (!myMap.containsKey(num))
                    myMap.put(num, 1);
                else
                    myMap.put(num, myMap.get(num)+1);
                if (myMap.get(num)>nums.length/2) {
                    ret = num;
                    break;
                }
            }
            return ret;
    }

 

以上是关于LeetCode-169找出数组中出现次数大于? n/2 ?次的数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 169. 多数元素

LeetCode 169. 多数元素

LeetCode(169. 求众数)

LeetCode--169--求众数

LeetCode169. 多数元素(摩尔投票法)

leetcode 169. Majority Element