例9、不重复的两个数
1、问题描述
给定一个数组a[],其中除了2个数,其他均出现2次,请找到不重复的2个数并返回
2、问题示例
给出a = [1,2,5,5,6,6],返回[1,2],给出a=[3,2,7,5,5,7],返回[2,3].
3、代码实现
#参数arr是输入的待查数组
#返回值是两个值的列表,内容没有重复的
class Solution:
def theTwoNumbers(self, a):
ans = [0, 0]
for i in a:
ans[0] = ans[0] ^ i
c = 1
while c & ans[0] != c:
c = c << 1
for i in a:
if i & c == c:
ans[1] = ans[1] ^ i
ans[0] = ans[0] ^ ans[1]
return ans
if __name__ == '__main__':
arr = [1, 2, 5, 1]
solution = Solution()
print(" 数组为:", arr)
print(" 两个没有重复的数字是:", solution.theTwoNumbers(arr))