思路:用几个额外变量,然后遍历一次就可找到。遍历到相同元素就加1,否则减1,遇到0就将当前的majority改成当前元素继续。
class Solution {
public:int majorityElement(vector<int>& nums) {
//init
int len=nums.size();
if(len==0) return -1;
int marjority=nums[0];
int counter=1;
//开始
for(int i=1;i<len;i++){
if(marjority==nums[i]){
counter++;
}else{
counter--;
}
if(counter==0){
marjority=nums[i];
counter=1;
}
}
return marjority;
}
};