Hash简单题

题目:https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=295&tqId=23271&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj
图片说明
真是有点搞笑了哈哈哈哈,这么简单的题目也要想半天了,思路也是用map一个一个累加,但是担心数组太长超时,还是去看了题解有没有更好的办法,但是题解也是用map解决这个问题,哈哈哈但是发现了一个更快捷的问题,一根管有一条蛇,如果蛇比管的一般长,那么切中间,一定会切到蛇。

方法一
import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        if(array.length == 0 || array == null) return 0;
        if(array.length == 1) return array[0];
        for (int i = 0; i < array.length; i++) {
            if(!map.containsKey(array[i])){
                map.put(array[i],1);
            }else if(map.get(array[i]) < array.length / 2){
                map.put(array[i],map.get(array[i]) + 1);
            }else return array[i];
        }
        return 0;
    }
}
方法二
import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        Arrays.sort(array);
        return array[array.length / 2];
    }
}
全部评论
投票法了解一下
点赞 回复 分享
发布于 2022-07-19 18:31

相关推荐

烟火_fy_烟火:怎么都得有个正儿八经的 Java 项目吧,虽说外卖点评这些不行,放上去也比你这两个好,实习没亮点,面试官咋提问呢,要么实习去掉,要么就把实习的难点拓展一下,自我评价去掉
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务