牛客题霸 数组中只出现一次的数字
程序员文章站
2022-03-08 15:49:34
...
解题思路
使用一个HashMap作为辅助,遍历数组,如果该元素不存在HashMap中,则把数字作为键插入HashMap(值随意);如果该元素存在HashMap中,则删除该数据。最后HashMap中剩余的2个数据就是仅为出现一次的数据。
public class Solution {
public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
HashMap<Integer,Integer> myMap = new HashMap<>();
for(int i : array){
if(myMap.containsKey(i)){
myMap.remove(i);
}else{
myMap.put(i,0);
}
}
ArrayList<Integer> temp = new ArrayList<>();
// 遍历hashMap
for(Map.Entry<Integer,Integer> enpty : myMap.entrySet()){
temp.add(enpty.getKey());
}
num1[0] = temp.get(0);
num2[0] = temp.get(1);
return;
}
}