
/**
摩尔投票:
定义一个count与res;res记录多数元素,count记录该元素出现次数(并非真实次数)
遍历数组,记录遍历到的元素res,迭代count遇到相同的元素count++,遇到不同的元素count--
若count已经为0,又遇到了不同元素,则重置res与count;遍历结束返回res即为多数元素
注意:
摩尔投票只能在确定有多数元素时才能使用
*/
class Solution {
/**
摩尔投票:
定义一个count与res;res记录多数元素,count记录该元素出现次数(并非真实次数)
遍历数组,记录遍历到的元素res,迭代count遇到相同的元素count++,遇到不同的元素count--
若count已经为0,又遇到了不同元素,则重置res与count;遍历结束返回res即为多数元素
注意:
摩尔投票只能在确定有多数元素时才能使用
*/
public int majorityElement(int[] nums) {
int count = 0;
int res = 0;
for(int i = 0; i < nums.length; i++) {
if(res == nums[i]) {
count++;
}
else {
if(count > 0) {
count--;
} else {
count = 1;
res = nums[i];
}
}
}
return res;
}
}

被折叠的 条评论
为什么被折叠?



