最近开始刷题,从easy开始。刚看到这道题的想法是用双轨制记录位置再进行遍历。代码如下:
class Solution {
public:int majorityElement(vector<int>& nums) {
int j=0,sum=0;
sort(nums.begin(),nums.end());
while(j<nums.size()){
for(int i=j+1; i<nums.size();i++)
{
if(nums[i]==nums[j]) {sum++;j=i;}
}
if(sum>=nums.size()/2) return nums[j];
else {sum=0;j++;}
}
}
};
后来提交之后看了答案才发现有更简单的方法:
sort(nums.begin(), nums.end());
return nums[nums.size()/2];
以后还是应该先考虑清楚后再打代码,不要上来就开始写。