1. 程式人生 > >面試題:數組中出現次數超過一半的數字

面試題:數組中出現次數超過一半的數字

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()方法直接調用

面試題:數組中出現次數超過一半的數字