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?
异或交换原理: 数字A异或B两次,就得到A。而B被A异或两次,就得到B
任意数与自己异或操作都是0,任意数与0异或操作都得到本身。
#!usr/bin/env
# -*-coding:utf-8 -*-
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for ele in nums:
res ^= ele
return res