一个有N个数的数组里, 每个数字都出现两次, 现在取出一个数, 根据剩下的数字, 猜测取出的数的值(要求时间复杂度为N, 空间复杂度为1)
5^5 == 0
0^10 == 10
10^20^30^40 == 20^30^10^40
代码实现:
class Solution:
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
result = nums[0]
for num in nums[1:]:
result ^= num
return result
def main():
so = Solution()
result = so.singleNumber([10, 20, 50, 80, 10, 50, 80, 5, 20])
print("单身数为:", result)
if __name__ == '__main__':
main()