# 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. # # For example: # # Given nums = [1, 2, 1, 3, 2, 5], return [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? class Solution(object): def singleNumber(self, nums): """ :type nums: List[int] :rtype: List[int] """ s = 0 for v in nums: s = s ^ v f = 1 while(s & f == 0): f <<= 1 a = 0 b = 0 for v in nums: if v & f == 0: a ^= v else: b ^= v return [a, b]