剑指 Offer 39. 数组中出现次数超过一半的数字

https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/

使用摩尔投票,使用两个变量。遍历数组
第一个记录当前遍历的数组的值,第二个记录当前遍历数字出现的次数
如果下一个数字和上一个是相同的,那么记录的变量就+1,不同的就-1,当减到0的时候,第一个记录当前值的变量就变成使votes减到0 的那个数字

class Solution {
    public int majorityElement(int[] nums) {
        int x = 0, votes = 0;
        for(int num : nums){
            if(votes == 0) x = num;
            votes += num == x ? 1 : -1;
        }
        return x;
    }
}
上一篇:PyTorch for Numpy users.


下一篇:130955-39-4,m-PEG7-Ms,亲水性PEG