描述
给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。
输入
输入多个数字,每个数字以空格分开。数字数量 N < 20,输入数字的最大值小于 256.
输出
输出内容为只出现过唯一一次的数字
输入样例
10 10 11 12 12 11 16
输出样例
16
代码:
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
String line;
while (scan.hasNextLine()) {
line = scan.nextLine().trim();
String[] numArray = line.split(" ");
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < numArray.length; i++) {
if (map.containsKey(numArray[i])) {
map.put(numArray[i], map.get(numArray[i]) + 1);
} else {
map.put(numArray[i], 1);
}
}
for (String key : map.keySet()) {
if (map.get(key) == 1) {
System.out.println(key);
}
}
}
}
}