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

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

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

思路: 采用HashMap

  • 如果存在,则 map.put(val, count+1),判断count+1 > array.length/2,是则返回当前元素值val;
  • 如果不存在,则添加进map (val, 1)。
import java.util.*;

public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        // 采用hashmap,如果不存在,则添加进map (val, 1)
        // 如果存在,则 map.put(val, count+1),判断count+1 > array.length/2,是则返回
        HashMap<Integer, Integer> map = new HashMap<>();
        for(int i=0; i<array.length; i++){
            if(map.containsKey(array[i])){
                map.put(array[i], map.get(array[i])+1);
                if(map.get(array[i]) > array.length/2) return array[i];
            }else{
                map.put(array[i], 1);
            }
        }
        return array[0];
    }
}
全部评论

相关推荐

Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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