1. 程式人生 > 其它 >(背下來)169. 多數元素(BM投票法)

(背下來)169. 多數元素(BM投票法)

技術標籤:leetcode刷題

###解題思路

BM演算法

如果當前字元和前一個字元一樣:計數++

如果當前字元和前一個字元不一樣:

1.如果c>0,則c--

2.如果c==0,則把r替換為當前字元,c=1

###程式碼

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int r ,c = 0;
        for(auto x : nums){
            if(!c) r = x,c = 1;
            else if(r == x) c++;
            else c--;
        }
        return r;
    }
};