一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请找出这两个只出现一次的数字。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41# -*-coding:utf-8 -*- class Solution: def FindNumsAppearOnce(self, array): # 如果两个数相同,那么这两个数的异或操作就等于0 if len(array) < 2: return None twoNumXor = None for num in array: if twoNumXor == None: twoNumXor = num else: twoNumXor = twoNumXor ^ num count = 0 while twoNumXor % 2 == 0: twoNumXor = twoNumXor >> 1 count += 1 mask = 1 << count firstNum = None secondNum = None for num in array: if mask & num == 0: if firstNum == None: firstNum = num else: firstNum = firstNum ^ num else: if secondNum == None: secondNum = num else: secondNum = secondNum ^ num return firstNum, secondNum if __name__ == '__main__': array = [1, 2, 3, 1, 2, 3, 4, 7, 4, 8] s = Solution() print(s.FindNumsAppearOnce(array))
运行结果为:
复制代码
1(8, 7)
最后
以上就是满意秀发最近收集整理的关于Python 数组中只出现一次的数字的全部内容,更多相关Python内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复