面試題:數組中出現次數超過一半的數字
阿新 • • 發佈:2018-08-22
contain for get() [] more port put ray map
題目描述:
方法1:哈希表
import java.util.HashMap; public class Solution { public int MoreThanHalfNum_Solution(int [] array) { HashMap<Integer,Integer> map = new HashMap<>(); for(int i=0;i<array.length;i++){ Integer key=array[i]; Integer value=map.get(key);if(value!=null){ map.put(key,value+1); }else{ map.put(key,1); } } for(int i=0;i<array.length;i++){ int val=map.get(array[i]); if(val>array.length/2) return array[i]; } return 0; } }
Map.containsKey()方法--判斷Map集中是否包含指定鍵名
Map.get()方法--判斷某個value值在map中出現了幾次
方法2:排序後計數,java.util.Arrays中有Arrays.sort()方法直接調用
面試題:數組中出現次數超過一半的數字