/*O(n)解法:
1.设置两个变量,cur保存当前元素值,count表示当前元素出现的个数;
2.遍历数组,
1)如果当前元素nums[i]==cur,则++count;
2)否则,若count>1,--count;若count==1,则cur=nums[i];
最后,返回cur。
*/
class Solution {
public:
int majorityElement(vector<int>& nums) {
int cur(nums[0]), count(1);
for(int i = 1; i < nums.size(); ++i){
if(nums[i] == cur) ++count;
else{
if(count == 1) cur = nums[i];
else --count;
}
}
return cur;
}
};