方法一
private static int singleNumber(int[] nums) {
// 创建 HashSet 对象,用于存储数组中的元素
HashSet<Integer> set = new HashSet<>();
// 遍历数组中的每个元素
for (int key : nums) {
// 如果元素已经存在于 HashSet 中,则从 HashSet 中移除
// 如果元素不存在于 HashSet 中,则添加到 HashSet 中
if (!set.add(key)) {
set.remove(key);
}
}
// 将 HashSet 转换为 Integer 数组,并取第一个元素作为结果返回
return set.toArray(new Integer[0])[0];
}
方法二
/**
* 方法二:使用位运算 XOR 实现
* @param nums 输入整数数组
* @return 数组中只出现一次的元素
*/
private static int singleNumber1(int[] nums){
// 初始化一个变量,用于存储结果
int num = nums[0];
// 遍历数组中的每个元素,进行异或运算
for (int i = 1; i < nums.length; i++) {
num = num ^ nums[i];
}
// 返回异或运算的结果,即数组中只出现一次的元素
return num;
}