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;
}
}