LCOF劍指offer--面試題39. 數組中出現次數超過一半的數字

數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。

你可以假設數組是非空的,並且給定的數組總是存在多數元素。

示例 1:

輸入: [1, 2, 3, 2, 2, 2, 5, 4, 2]

輸出: 2

限制:

1 <= 數組長度 <= 50000

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
分析:
哈希表
解答:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        unordered_map<int,int> hashmap;

        for(int i=0;i<nums.size();i++){
            hashmap[nums[i]]++;
            if(hashmap[nums[i]]>nums.size()/2){
                return nums[i];
            }
        }

        return 0;

    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章