题目描述:
主要思路:
本题的难点是线性时间和常数空间。
看了题解之后学到了一个很妙的思路,如果当前数值和当前标记的一样,那么就+1,否则就-1,当数量为0时,更换标记值。
class Solution {
public:
int majorityElement(vector<int>& nums) {
int candidate = -1,count=0;
for(auto num:nums)
{
if(num==candidate)
++count;
else if(--count<0)
{
candidate=num;
count=1;
}
}
return candidate;
}
};