leetcode.多数元素
169. 多数元素 - 力扣(LeetCode)
import java.util.HashMap;public class LeetCode169 {public int majorityElement(int[] nums) {int count = nums.length;int res = count/2;Scanner scanner = new Scanner(System.in);HashMap<Integer,Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {map.put(nums[i],map.getOrDefault(nums[i],0)+1);}int ans = 0;for (Integer key : map.keySet()) {if (map.get(key) > res){ans = key;break;}}return ans;}// 算法思路:
// 1. 创建一个HashMap,将数组中元素作为key,出现的次数作为value
// 2. 遍历HashMap,找到value最大的key,即为出现次数最多的元素
// 3. 返回结果//摩尔投票算法public int majorityElement(int[] nums) {int candidate = nums[0];int count = 1;for (int i = 1; i < nums.length; i++) {if (nums[i] == candidate) {count++;} else {count--;if (count == 0) {candidate = nums[i];count = 1;}}}return candidate;}
}