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

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

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

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
03-09 20:32
运营
牛客972656413号:成绩管理系统会不会有点太。。。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务