leetCode#448. Find All Numbers Disappeared in an Array
来源:互联网 发布:漂移算法时间序列预测 编辑:程序博客网 时间:2024/06/08 12:31
Description
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]
Code
class Solution(object): def findDisappearedNumbers(self, nums): """ :type nums: List[int] :rtype: List[int] """ exist = [0] * (len(nums) + 1) for i in nums: exist[i] = 1 res = [] for idx, i in enumerate(exist): if idx != 0 and i == 0: res += [idx] return res
author:yang2007chun
For each number i in nums,
we mark the number that i points as negative.
Then we filter the list, get all the indexes
who points to a positive number.
Since those indexes are not visited.
class Solution(object): def findDisappearedNumbers(self, nums): """ :type nums: List[int] :rtype: List[int] """ # For each number i in nums, # we mark the number that i points as negative. # Then we filter the list, get all the indexes # who points to a positive number for i in xrange(len(nums)): index = abs(nums[i]) - 1 nums[index] = - abs(nums[index]) return [i + 1 for i in range(len(nums)) if nums[i] > 0]
Conclusion
我的算法还算是本科时期的产物,先统计存在的,再遍历出不存在的,这样其实空间没有达到要求。精简的算法,都是直接修改原始list,比如设为负数。然后最后再遍历原始list即可。这点学习到了。
阅读全文
0 0
- LeetCode-Array-448. Find All Numbers Disappeared in an Array
- leetcode:448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- <leetcode>448.Find All Numbers Disappeared in an Array
- [LeetCode] 448. Find All Numbers Disappeared in an Array
- [LeetCode]448. Find All Numbers Disappeared in an Array
- leetcode 448. Find All Numbers Disappeared in an Array
- Leetcode 448. Find All Numbers Disappeared in an Array
- 【LeetCode】 448. Find All Numbers Disappeared in an Array
- 448. [LeetCode]Find All Numbers Disappeared in an Array
- [leetcode] 448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- Leetcode-448. Find All Numbers Disappeared in an Array
- 【Leetcode】448. Find All Numbers Disappeared in an Array
- LeetCode - 448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- LeetCode--448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array(Java)
- 稚嫩的软件工程师小王:第13工作日——MyBatis
- 学习笔记12
- neuoj_Problem_1238_LittleBoxes(大整数类)
- Ubuntu修改MySQL数据库datadir目录
- 【ZOJ3349】Special Subsequence
- leetCode#448. Find All Numbers Disappeared in an Array
- Python绘制双柱状图并显示数值
- 百度员工离职总结:资质平庸的人该怎么办?震惊了无数人!
- MAC
- SbulimeText3密匙
- 用shell脚本写的一个简单的计算器
- Presto-[6]-JDBC Driver 简介与Demo测试
- 每日总结
- 第十六周LeetCode