问题描述
Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
思路
用XOR 的特点以及交换律, 只有两个完全一致的数字 xor,才会得0,整个list的元素xor一遍,随后剩下的就是多出来落单的元素
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
result=nums[0];
for i in range(1, len(nums)):
result = result ^ nums[i]
return result