class Solution:
def findDisappearedNumbers(self, nums: List[int]) -> List[int]:
#TC: O(len(nums))
#SC: O(1)
#using negative sign in position of nums to indicate the existence of the elements
for i in range(len(nums)):
idx = abs(nums[i]) - 1
nums[idx] = -1*abs(nums[idx])
res = []
for i in range(len(nums)):
if nums[i] > 0:
res.append(i+1)
return res
根据性质1…n的数,nums[nums[i]]这样数值信息转换为位置下标index来处理这个列表的操作很不错。
对的,我记得还有另一道数组题也是这个做法,这个题如果不用这样的trick我觉得难度应该是大过easy的
大神18年就打卡了一定积累了很多吧!萌新感觉计算机算法的逻辑好神奇