LeetCode Hot 热题100 算法题 169.多数元素-算法&测试-easy模式
程序员文章站
2022-03-15 20:32:26
...
LeetCode Hot 热题100 算法题 169.多数元素-算法&测试-easy模式
给定一个大小为n的数组,找到其中的多数元素。多数元素指在数组中出现次数大于n/2的元素。
示例:[2,2,1,3,1,1,2,4,2,2,2]
输出:2
1.遍历数组,添加元素至HashMap,key为元素值,value为该元素值出现的次数
2.遍历HashMap,取出value最大的元素的key 即最后结果。
package leetcode.easy;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class Solution169 {
public static void main(String[] args) {
int[] nums = {2,2,1,3,1,1,2,4,2,2,2};
S169MostEle testMostEle = new S169MostEle();
System.out.println(testMostEle.mostEle(nums));
}
}
class S169MostEle{
public int mostEle(int[] nums) {
Map<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
int res = 0;
for (int i = 0; i < nums.length; i++) {
if (hashMap.containsKey(nums[i])) {
hashMap.put(nums[i], hashMap.get(nums[i])+1 );
}else {
hashMap.put(nums[i],1);
}
}
for (Entry<Integer, Integer> entry : hashMap.entrySet()) {
if(entry.getValue() > nums.length/2) {
res = (int)entry.getKey();
}
}
return res;
}
}
参考:
https://leetcode-cn.com/problems/majority-element/solution/duo-shu-yuan-su-by-leetcode-solution
上一篇: c#基础知识Day2
下一篇: Roman to Integer