169 多数元素

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

class Solution {

    public int majorityElement(int[] nums) {

       

           // 存储每个数字的出现次数

        HashMap<Integer, Integer> target = new HashMap<>();

        Integer data = 0;

        // 遍历数组,统计每个数字出现的次数

        for (int num : nums) {

            target.put(num, target.getOrDefault(num, 0) + 1);

        }

        // 找出只出现一次的数字

        for (Map.Entry<Integer, Integer> entry : target.entrySet()) {

            if (entry.getValue() > nums.length / 2) {

                data = entry.getKey(); // 返回只出现一次的数字

            }

        }

        return data;

    }

}

  • target.put(num, target.getOrDefault(num, 0) + 1);:这行代码是循环体,它执行以下操作:

    • target.getOrDefault(num, 0):这是HashMap的一个方法调用,它尝试从target映射中获取键num对应的值。如果键num不存在于映射中,则返回默认值0
    • + 1:这是对getOrDefault返回的值加1。
    • target.put(num, ...):这是HashMap的另一个方法调用,它将键num和计算出的新值(即原值加1)放入映射中。如果键num已经存在于映射中,则更新其值;如果不存在,则添加新的键值对。

总的来说,这段代码的作用是统计数组nums中每个数字出现的次数,并将这些统计结果存储在target HashMap中。target的键是数组中的数字,值是该数字在数组中出现的次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值