题目来自: 力扣.
难度:简单
AC时间:<10 min
异或运算
异或运算(xor) 是一个很简单的位运算操作,其遵循相同为0 不同为1 的原则,如表所示。
第一个bit | 第二个bit | 结果 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
题目要求
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
思路
想法很简单,由于除了某一元素以外,其他元素均出现2次,异或操作可以将2个相同的元素计算成0,而0和任意数字的异或仍然等于该数字本身,将数组中所有的元素均与0进行异或以后,留下的就是只出现过一次的数字。
代码
以下是java代码:
// An highlighted block
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for(int i :nums){
res = res ^ i;
}
return res;
}
}