系列文章目录
前言
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
描述
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
提示:输出时按非降序排列。
public int[] FindNumsAppearOnce (int[] array) {
// write code here
// 用于返回结果
int[] res = new int[2];
// 创建一个哈希表
HashMap<Integer,Object> set = new HashMap<>();
for(int i = 0; i < array.length; i++){
// 如果已经被当作key了,那就直接remove掉
if(set.containsKey(array[i])){
set.remove(array[i],null);
}else{
// 否则就添加进去
set.put(array[i],null);
}
}
int i = 0;
// 最后拿出来放进返回结果的数组中进行返回
for(Integer num:set.keySet()){
res[i++] = num;
}
return res;
}