为什么80%的码农都做不了架构师?>>>
输入一串数字,其中只有一个数字只出现一次,其他数字均出现两次,要求找出这个只出现一次的数字。
1、第一种方式依次遍历每一个数字,然后再遍历这个数字之后的数字如果没有重复则就是它,否则就继续,这种方法算法复杂度为 O(n²)
2、第二种方式可以借用 map ,牺牲空间换取时间,算法复杂度 O(n) 。
3、第三种借用 0 ^ i = i , i ^ i = 0 的特性,效率最高,不用牺牲额外空间。
def findSingleNumber():
row_str = raw_input(r"输入:")
nums = [int(i) for i in row_str.split(",")]
# 第二种方式
# m = {}
# for i in nums:
# if i in m.keys():
# m.pop(i)
# continue
# m[i] = True
#
# print m.keys()[0]
# 第三种方式
temp = 0
for i in nums:
temp = temp ^ i
print temp