
求解代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public int[] FindNumsAppearOnce (int[] nums) {
HashMap<Integer,Integer> map = new HashMap<>();
int[] ans = new int[2];
for(int i=0;i<nums.length;i++){
map.put(nums[i],map.getOrDefault(nums[i],0)+1);
}
int j=0;
for(int num:map.keySet()){
if(map.get(num)==1){
ans[j++]=num;
}
if(j==2){
break;
}
}
if(ans[0]>ans[1]){
int t = ans[0];
ans[0]=ans[1];
ans[1]=t;
}
return ans;
}
|
小贴士
for(int num : map.keySet()),我们很容易想到的是再一次遍历nums,但是这里可以利用HashMap的keySet,只遍历不重复的数字。