Loading...

哈希-数组中只出现一次的两个数字

在这里插入图片描述

求解代码

 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,但是这里可以利用HashMapkeySet,只遍历不重复的数字。

最后更新于 2026-04-05 17:35:33
Code Road Record