题目
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例
输入: [2,2,1]
输出: 1
输入: [4,1,2,1,2]
输出: 4
分析
根据 a ^ a = 0,0 ^ b = b 即可消除重复元素,得到落单元素。
代码实现
public class _02只出现一次的数字 {
public static void main(String[] args) {
// 这里用1-5数举例,数组长度为9
int[] array = {1, 2, 4, 3, 4, 3, 5, 2, 5};
int x = 0;
// 相同的数异或等于0
for (int value : array) {
x = x ^ value;
}
System.out.println("非重复元素为:" + x);
}
}
运行结果
力扣提交代码
class Solution {
public int singleNumber(int[] nums) {
int x = 0;
// 相同的数异或等于0
for (int num : nums) {
x = x ^ num;
}
return x;
}
}