• 2.22
    • 当 count=0 时,当前就是候选人
class Solution {
    public int majorityElement(int[] nums) {
        int candidate = 0;
        candidate = nums[0];
        int count =1;
        for(int i=1;i<nums.length;i++){
            if(candidate==nums[i]){
                count++;
            }else{
                count--;
            }
            if(count==0){
                candidate = nums[i];
                count=1;
            }
        }
        return candidate;
    }
}
  • 2.5
    • 摩尔投票法(其实就是消消乐,不是自己人就杀,是自己人就抱一起,最后留下来的候选人一定超过半数)
class Solution {
    public int majorityElement(int[] nums) {
        int candidate = nums[0];
        int count = 0;
        for(int num:nums){
            if(count==0){
                candidate=num;
            }
            if(num==candidate){
                count++;
            }else{
                count--;
            }
        }
        return candidate;
    }
}