1. 程式人生 > >(劍指offer)陣列中出現次數超過一半的數字

(劍指offer)陣列中出現次數超過一半的數字

時間限制:1秒 空間限制:32768K 熱度指數:248291
本題知識點: 陣列

題目描述
陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。

import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        HashMap<Integer, Integer>
map = new HashMap<Integer, Integer>(); for(int i = 0; i < array.length; i++){ if(map.containsKey(array[i])){ map.put(array[i],map.get(array[i])+1); }else{ map.put(array[i], 1); } } Iterator it = map.
entrySet().iterator(); while(it.hasNext()){ Map.Entry entry = (Map.Entry)it.next(); Integer key = (Integer)entry.getKey(); Integer value = (Integer)entry.getValue(); if(value>array.length/2){ return key; } }
return 0; } }