题目描述
给定一个长度为 n 的数组,找到其主要元素。主要元素是出现次数严格大于⌊ n/2 ⌋的元素。
可以假定数字非空,且主要元素必定存在。
样例
Example 1:
Input: [3,2,3]
Output: 3
Example 2:
Input: [2,2,1,1,1,2,2]
Output: 2
思路
摩尔投票
胜者为王
代码
class Solution {
public:
int majorityElement(vector<int>& nums) {
int count = 0,condidate;
for(auto num:nums){
if(count==0) condidate = num;
(num == condidate)?count++:count--;
}
return condidate;
}
};