这道题,记录第一个元素,设置次数为1,每遇到一个不同的元素,次数减一,相同的元素则加一,当次数被减为0时,说明后面的元素和前面的最多的元素至少一样多,此时将元素设置为当前元素,次数设置为一,最后,被记录的元素,就是出现次数最多的。
public int majorityElement(int[] nums) {
int max_n = nums[0];
int now = nums[0];
int mark = 1;
for(int count = 1;count < nums.length; count++){
if(nums[count] == now){
mark++;
}else{
mark--;
}
if(mark == 0){
mark = 1;
now = nums[count];
}
}
return now;
}