给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。(第一个和第三个我写的,群众的眼睛是光亮的)
class Solution(object):
def missingNumber1(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
max_value = len(nums)
new_list = [i for i in range(max_value+1)]
return (set(new_list) - set(nums)).pop()
def missingNumber2(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
disappear_num = len(nums) * (len(nums)+1) // 2 - sum(nums)
return disappear_num
def missingNumber(self, nums):
"""突发灵感想到了这个
:type nums: List[int]
:rtype: int
"""
c = 0
k = 0
for i in nums:
c ^= i
c ^= k
k += 1
c ^= len(nums)
return c
if __name__ == '__main__':
nums = [9, 6, 4, 2, 3, 5, 7, 0, 1]
s1 = Solution()
root = s1.missingNumber(nums)
print(root)