2025年- G18-Lc92-169. 多数元素-java版
1.题目描述
 
 2.思路
 补充1:
 
 思路1:
 (1)我打算用hashmap的getOrDefault()取键的值。
 (2)m.keySet() 是一个方法,用于获取 HashMap 中所有的键(key)。(3)keySet() 返回的是一个包含所有键的 集合(Set),你可以通过这个集合来遍历所有的键。
 

3.代码实现
class Solution {
    public int majorityElement(int[] nums) {
        HashMap<Integer,Integer> m =new HashMap();
         // 1. 统计每个元素出现的频率
        for(int c:nums)
        {
            m.put(c,m.getOrDefault(c,0)+1);
        }
        // //通过m.values(),我们可以获取到所有字符的出现次数。
        // for(int cnt:m.values())
        // {
        //     if()
        // }
        int n=nums.length;
        // 2. 找到出现次数最多的元素,且它的出现次数大于 n / 2
        for(int cnt:m.keySet())
        {
            if(m.get(cnt)>n/2)
            {
               return cnt;
            }
        }
        // 3.如果没有众数,返回 -1(这通常不会发生,因为题目保证有众数)
        return -1;
    }
}
