leetcode 169. 多数元素(不同数相消解法)

题目

在这里插入图片描述

思路

众数在集合里的数量超过一半,每次把两个不同的数字去除相当月兑子,最后剩下的肯定是众数。
count=0 时就相当于把若干组不同值的元素兑掉了。

题解

class Solution {
    // 众数在集合里的数量超过一半,每次把两个不同的数字去除相当月兑子,最后剩下的肯定是众数。
    // count=0 时就相当于把若干组不同值的元素兑掉了。
    public int majorityElement(int[] nums) {
        int cnt = 0;
        int cur = nums[0];
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == cur) {
                cnt++;
            } else {
                cnt--;
            }
            if (cnt == 0) {
                cur = nums[i];
                cnt = 1;
            }
        }
        return cur;
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/107478369