劍指 Offer 39. 數組中出現次數超過一半的數字

2020-06-23

1.題目描述

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

2.題解

該數出現的次數比剩下所有數出現的次數之和還要多

3.代碼

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int len=nums.size();
        int cnt=1,number=nums[0];
        for (int i=1;i<len;i++){
            if (nums[i]!=number){
                cnt--;
                if (cnt==0){
                    cnt=1;
                    number=nums[i];
                }
            }else{
                cnt++;
            }
        }
        return number;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章