169. Majority Element
两种思路:一种是先对数组进行排序,然后取中位数;另外一种比较巧妙,设置两个变量,一个计数器count,一个变量值num,然后从前往后遍历,遇到和num相同的count++,遇到不同的count–,当count==0时更新num。
思路1:
class Solution {
public:
int majorityElement(vector<int>& nums) {
sort(nums.begin(),nums.end());
int n=nums.size()/2;
return nums[n];
}
};
思路2:
class Solution {
public:
int majorityElement(vector<int>& nums) {
int num;
int count=0;
for(vector<int>::iterator it=nums.begin();it!=nums.end();it++)
{
if(count==0)
num=*it;
if(*it==num)
count++;
else
count--;
}
return num;
}
};