题目:多数元素
思路
- 初始化:
众数mode
:初始值设置为数组的第一个元素;票数vote
:表示当前众数mode
所获得的票数,初始值设置为0;
- 遍历,对每个元素e进行如下操作:
- 判断
票数vote
是否为0
:为0
则将当前遍历的元素e
设置为众数mode
; - 判断
e
是否为众数mode
:- 是 ==>
vote + 1
; - 否 ==>
vote - 1
;
- 是 ==>
- 判断
- 返回最终选举的
众数mode
。
代码
class Solution {
public int majorityElement(int[] nums) {
//1.初始化
int mode = nums[0];
int votes = 0;
//2.遍历
for(int num : nums){
if(votes == 0){ //票数是否为0
mode = num;
}
if(num == mode){ //判断当前元素是否为众数
votes ++;
}else{
votes --;
}
}
return mode;
}
}