题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8
package com.hhdd.哈希;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
/**
* @Author huanghedidi
* @Date 2022/8/13 15:18
*/
public class 数组中只出现一次的两个数字 {
public static void main(String[] args) {
int[] arr = {1,2,3,3,2,9};
int[] res = FindNumsAppearOnce(arr);
System.out.println("res = " + Arrays.toString(res));
}
/**
* 题目有个条件是其他数字都是出现2次,说明不会有3,4,次这种情况
*
* @param array
* @return
*/
public static int[] FindNumsAppearOnce(int[] array) {
// write code here
HashSet<Integer> set = new HashSet<>();
for (int i = 0; i < array.length; i++) {
int tmp = array[i];
if (set.contains(tmp)) {
set.remove(tmp);
} else {
set.add(tmp);
}
}
int[] res = new int[set.size()];
int index = 0;
for (Integer item : set) {
res[index++] = item;
}
Arrays.sort(res);
return res;
}
}

