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]; } }