您的位置:首页 > 移动开发

[Leetcode,python] Find All Numbers Disappeared in an Array 寻找数组中消失的数字

2016-12-21 01:04 573 查看
问题描述:

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.


解决方案:

class Solution(object):
def findDisappearedNumbers(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
for a_num in nums:
nums[abs(a_num)-1] = -abs(nums[abs(a_num)-1])
return [i+1 for i,a_num in enumerate(nums) if a_num>0]


思路说明:

第一次遍历:用相反数的形式标记出现过的数字(下标);
第二次遍历:找出没有被标记的数字(下标),并返回;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python leetcode
相关文章推荐