题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
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; } }