多数元素只可能存在一个,使用一个计数器来存储元素出现个数,不同时减1,相同时加1,计数器为0时存储当前位置数字,并计数为1
int majorityElement(int* nums, int numsSize) {
int i=0;
int time=0;
int num=0;
for(i;i<numsSize;i++){
if(time==0){
num=nums[i];
time++;
}else if(num==nums[i]){
time++;
}else{
time--;
}
}
return num;
}
class Solution {
public:
int majorityElement(vector<int>& nums) {
int major = -1;
int time = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == major) {
time++;
} else if (--time < 0) {
major = nums[i];
time = 1;
}
}
return major;
}
};