很菜的写法:
class Solution:def findDisappearedNumbers(self, nums: List[int]) -> List[int]:n=len(nums)#存1-Nnum_1=[i for i in range(1,n+1)]#预存数num_2=[]nums.sort()for i in nums:num_1[i-1]=0for i in num_1:if i!=0:num_2.append(i)return num_2
能过但是时间复杂度太高了
sort那个好像冗余了,注释掉 , hhh
优化
class Solution:def findDisappearedNumbers(self, nums: List[int]) -> List[int]:n=len(nums)for i in nums:#遍历数组中的每一个数x=(i-1)%n#让nums[i-1]+n超出该范围,mod n是因为有些数被加过nums[x]+=n#根据遍历nums,每个数是否超范围而(i+1)定位到该数进行返回ret =[i+1 for i,num in enumerate(nums) if num<=n]return ret
用到了nums列表做哈希表的思想
笑死,不如我写的勾史。。。
next one!