題目
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
public class Solution169 { public static void main(String args[]){ Solution169 solution169 = new Solution169(); int nums[] = {3,3,4}; int n = solution169.majorityElement(nums); System.out.print(n); } /** * 使用hashmap,儲存每一個數出現的次數 * 然後找出出現次數最多的數 * */ public int majorityElement(int[] nums) { HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>(); for(int i=0;i<nums.length;i++){ if(hashMap.get(nums[i])==null){ hashMap.put(nums[i],1); }else{ int count = hashMap.get(nums[i]); hashMap.put(nums[i], ++count); } } int majorityElementIndex=0; int maxValue=0; for(int i=0;i<nums.length;i++){ int value = hashMap.get(nums[i]); if(value>maxValue){ maxValue = value; majorityElementIndex=nums[i]; } } return majorityElementIndex; }}