[leetcode] First Missing Positive
来源:互联网 发布:手机 淘宝 降价提醒 编辑:程序博客网 时间:2024/06/11 13:41
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.
原文链接:http://www.cnblogs.com/AnnieKim/archive/2013/04/21/3034631.html
思路:
虽然不能再另外开辟非常数级的额外空间,但是可以在输入数组上就地进行swap操作。
思路:交换数组元素,使得数组中第i位存放数值(i+1)。最后遍历数组,寻找第一个不符合此要求的元素,返回其下标。整个过程需要遍历两次数组,复杂度为O(n)。
下图以题目中给出的第二个例子为例,讲解操作过程。
代码:
class Solution {public: int firstMissingPositive(int A[], int n) { int i=0; while(i<n){ if(A[i]!=(i+1) && A[i]>=1 && A[i]<=n && A[A[i]-1]!=A[i]){ swap(A[i],A[A[i]-1]); }else{ i++; } } for(int i=0;i<n;i++){ if(A[i]!=(i+1)) return i+1; } return n+1; }};
0 0
- LeetCode: First Missing Positive
- LeetCode First Missing Positive
- LeetCode: First Missing Positive
- [Leetcode] First Missing Positive
- [LeetCode] First Missing Positive
- [Leetcode] First Missing Positive
- leetcode First Missing Positive
- LeetCode First Missing Positive
- [leetcode] first missing positive
- LeetCode: First Missing Positive
- [LeetCode]First Missing Positive
- LeetCode-First Missing Positive
- [leetcode] First Missing Positive
- [LeetCode] First Missing Positive
- LeetCode - First Missing Positive
- LeetCode | First Missing Positive
- Leetcode: First Missing Positive
- Leetcode:First Missing Positive
- 机器学习开源软件
- php常见错误以及解决方案
- uva That Nice Euler Circuit(计算几何 欧拉公式)
- linux中的jiffies变量
- mysql启动报错
- [leetcode] First Missing Positive
- iOS CGContextRef画图小结
- XCode 使用技巧整理
- Java(三)--容器
- mysqldump 导出、导入数据
- Qt静态编译教程(完整版)
- JPA联合主键的使用
- HDU1175连连看 BFS
- 给wxPython事件处理函数传递参数