题目链接:https://www.acwing.com/problem/content/description/48/
题目如下:
class Solution {
public:
int moreThanHalfNum_Solution(vector<int>& nums) {
//摩尔投票法:如果一个数大于一半,则这个数最后的数量一定会大于其他所有数的数量之和
int cnt=1,val=nums[0];
for(int i=1;i<nums.size();i++){
if(nums[i]==val) cnt++;
else cnt--;
if(cnt==0){
cnt=1;
val=nums[i];
}
}
return val;
}
};