First Missing Positive
来源:互联网 发布:破解软件游戏 编辑:程序博客网 时间:2024/06/06 01:30
Given an unsorted integer array, find the first missing positive integer.
For example,
Given [1,2,0]
return 3
,
and [3,4,-1,1]
return 2
.
Your algorithm should run in O(n) time and uses constant space.
思路:
无序数组的题目如果要O(n)解法往往要用到hash table,但这题要求constant space。所以可以用数组本身作为一个"hash table":A[0] = 1, A[1] = 2, .... A[n-1] = n。目标是尽可能将数字i放到数组第i-1个位置。扫描数组中每个数:
1. 如果A[i]<1或者A[i]>n。说明A[i]一定不是first missing positive。跳过
2. 如果A[i] = i+1,说明A[i]已经在正确的位置,跳过
3. 如果A[i]!=i+1,且0<A[i]<=n,应当将A[i]放到A[A[i]-1]的位置,所以可以交换两数。
这里注意,当A[i] = A[A[i]-1]时会陷入死循环。这种情况下直接跳过。
0 0
- LeetCode: First Missing Positive
- LeetCode First Missing Positive
- LeetCode: First Missing Positive
- [Leetcode] First Missing Positive
- leetcode12: First Missing Positive
- First Missing Positive
- [LeetCode] First Missing Positive
- [Leetcode] First Missing Positive
- leetcode First Missing Positive
- LeetCode First Missing Positive
- [leetcode] first missing positive
- First Missing Positive
- LeetCode: First Missing Positive
- First Missing Positive
- First Missing Positive
- [LeetCode]First Missing Positive
- First Missing Positive
- First Missing Positive
- CenOS安装httpie
- linux 防火墙配置规则
- Cube Stacking POJ1988 【并查集的应用】
- Silverlight 控件的ToolTip封装工具使用
- RSA加密算法的java实现
- First Missing Positive
- Git 分支管理和冲突解决
- visualgdb无法查看临时变量的解决方案
- 社説 20150827 企業年金改革 多くの人が活用できる制度に
- Leetcode: Reverse Integer
- 2015.6.23(Metaq和HSF)
- iOS开发-关闭/收起键盘方法总结
- Deploy FAILURE:An app Was not successfully detected by any available buildpack
- java获得文件全路径中关于路径分隔符的使用