题解 | #数组中出现次数超过一半的数字#

数组中出现次数超过一半的数字

http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163

用hashmap装载,可以符合o(n)的时间复杂度

import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        HashMap<Integer,Integer> h = new HashMap<>();
        int max = 0;
        int index = 0;
        if(array.length<2){
            return array[0];
        }
        for(int i = 0; i<array.length;i++){
            if(h.containsKey(array[i])){
                int flag = h.get(array[i]);
                flag++;
                h.put(array[i],flag);
                if(flag > max){
                    index = array[i];
                    max = flag;
                }
            }
            else{
                h.put(array[i],0);
            }
        }
        return index;
    }
}
全部评论

相关推荐

龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务