Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.
Find all the elements of [1, n] inclusive that do not appear in this array.
Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space.
Example:
Input:
[4,3,2,7,8,2,3,1]
Output:
[5,6]
思路:
取一個新list,里面元素從1到n,然后通過set相減得到沒有在已知數組中出現的元素,然后轉換為list。
建議:使用xrange,xrange比range快
class Solution(object):
def findDisappearedNumbers(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
news = xrange(1, len(nums)+1)
#return [i for i in news if i not in list(set(nums))]
return list(set(news) - set(nums))