136. Single Number
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory
solution:
def singleNumber(nums):
res = 0
for num in nums:
res ^= num
print(res)
return res
Q: why XOR
works?
A:
For anyone who didn’t understood why this works here is an explanation. This XOR operation works because it’s like XORing all the numbers by itself. So if the array is {2,1,4,5,2,4,1} then it will be like we are performing this operation
((2^2)^(1^1)^(4^4)^(5)) => (0^0^0^5) => 5.
Hence picking the odd one out ( 5 in this case).
转载来源1
转载来源2