Single Number III
Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.
Example
Input: [1,2,1,3,2,5]
Output: [3,5]
Note
The order of the result is not important. So in the above example, [5, 3] is also correct.
Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
Solution
runtime: 1660ms
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
res = []
ret = []
if len(nums)==2:
return nums
for i in range(len(nums)):
judge = nums.pop()
if(judge in nums or judge in res):
res.append(judge)
continue
else:
ret.append(judge)
if len(ret)==2:
return ret
Resource:https://blog.csdn.net/lcj_cjfykx/article/details/48531073
runtime:24ms
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
diff = 0
for e in nums:
diff ^= e
diff &= -diff
ret = [0,0]
for e in nums:
if diff & e !=0:
ret[0] ^=e
else:
ret[1] ^=e
return ret