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];
}
}
科大讯飞公司氛围 455人发布