First, we initialized a list called
rank that contains
n positive number : you can either use
range or just set these
n numbers as
1. But I thank the first is better, because it's easier for us to find the index.
Then, we traverse the
num in list
nums, and set the number in
rank with index
num to be a negative value, that is, this number has been "visited".
At last, we just need to return the positive value in
rank since it has not been visited, which means it doesn't appear in
nums. And such positive values are just the indexes that to be returned.
class Solution(object): def findDisappearedNumbers(self, nums): """ :type nums: List[int] :rtype: List[int] """ n = len(nums) rank = range(0,n+1) for num in nums: rank[num] = -1 return [j for j in rank if j>0]