[勇者闯LeetCode] 136. Single Number
Description
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?
Information
- Tags: Hash Table | Bit Manipulation
- Difficulty: Easy
Solution
两个相同的数字进行异或操作会得到0,而任一数字与0进行异或则得到原来的数字。由于数组只一个数字只出现一次,其他都出现两次,所以对数组中的数字逐个进行异或操作,最后会得到只出现一次的那个数字。
Python Code
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
result = 0
for num in nums:
result ^= num
return result