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

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

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;
    }
}
全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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