欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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