借用hashmap好理解点吧

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

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

        int length = array.length;
        HashMap<Integer,Integer> hashMap = new HashMap<>(length);
        int count = 1;
        int tmp = 0;
        for (int i = 0; i < length; i++) {
            if (hashMap.containsKey(array[i])) {
                tmp = hashMap.get(array[i]);
                hashMap.put(array[i], ++tmp);
                if (tmp > length/2) {
                    return array[i];
                }
            }else {
                hashMap.put(array[i], count);
            }
        }
        return 0;
全部评论
当只有1个数,如array=[1]时,直接加进去,没有判断是否超过长度的一半,得不到结果
点赞 回复 分享
发布于 2021-06-05 16:56

相关推荐

12-19 15:04
门头沟学院 Java
小肥罗:hr爱上你了,你负责吗哈哈
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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