1. 程式人生 > >LeetCode——169. 求眾數

LeetCode——169. 求眾數

題目

給定一個大小為 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋ 的元素。

你可以假設陣列是非空的,並且給定的陣列總是存在眾數。

示例 1:

輸入: [3,2,3]
輸出: 3

示例 2:

輸入: [2,2,1,1,1,2,2]
輸出: 2

解題思路 

依次找出每個數重複的數目,取滿足在陣列中出現次數大於 ⌊ 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;
    }
}

ps:Map真好用...