1 # -*- coding:utf-8 -*- 2 class Solution: 3 # 返回[a,b] 其中ab是出现一次的两个数字 4 def FindNumsAppearOnce(self, array): 5 # write code here 6 if len(array)<2: 7 return None 8 tmpnum = None 9 for num in array: 10 if tmpnum==None: 11 tmpnum = num 12 else: 13 tmpnum ^=num 14 count = 0 15 while tmpnum%2==0: 16 tmpnum = tmpnum >>1 17 count +=1 18 mask = 1 << count 19 firstNum = None 20 secondNum = None 21 for num in array: 22 if num&mask == 0: 23 if firstNum == None: 24 firstNum = num 25 else: 26 firstNum ^=num 27 else: 28 if secondNum == None: 29 secondNum = num 30 else: 31 secondNum ^= num 32 return firstNum,secondNum 33
2019-12-23 14:58:21
原文:https://www.cnblogs.com/NPC-assange/p/12083797.html