可参考list和set内置函数的时间复杂度
要求O(n)的时间复杂度,O(1)的空间复杂度
set的in操作,O(1)
list的in操作,O(n)
如果用list的in判断,那么则会超时。
828ms
class Solution(object):
def findDisappearedNumbers(self, nums):
t = len(nums)
nums = set(nums)
ans = []
for i in range(1,t+1):
if(i not in nums):
ans.append(i)
return ans
set的difference操作,max(O(n), O(m))
list没有difference操作
796ms
class Solution(object):
def findDisappearedNumbers(self, nums):
t = len(nums)
nums = set(nums)
p = [i for i in range(1,t+1)]
p = set(p)
return p-nums