陣列:找出陣列中重複元素最多的數
阿新 • • 發佈:2018-12-26
題目描述:
如何找出陣列中重複元素最多的數
思路:
使用Map對映表記錄每一個元素出現的次數,然後判斷次數大小,進而找出重複次數最多的元素。key表示陣列的元素,value表示這個元素在陣列中出現的次數。最後對map進行遍歷。
程式碼:
/** * 使用map(不允許重複的),key是a中元素的值,value是元素出現的次數 * @param a * @return */ private int findMostFrequentInArray(int[] a) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for(int i=0; i<a.length; i++ ){ if(map.containsKey(a[i])){ map.put(a[i], map.get(a[i])+1); }else{ map.put(a[i], 1); } } int index=0;//陣列中重複元素最多的數 int val = 0;//最多的次數 Iterator<Entry<Integer, Integer>> iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Entry<Integer, Integer> next = iterator.next(); int key = next.getKey(); int value = next.getValue(); if(value > val){ index = key; val = value; } } return index; }
測試程式碼:
@Test
public void test1(){
int[] a = {1,1,1,1,1,2,2,4,4,4,4,5,5,6,6,6};
System.out.println(findMostFrequentInArray(a));
}