First Missing Positive
来源:互联网 发布:javaweb课程设计源码 编辑:程序博客网 时间:2024/05/22 03:22
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.
分析:思路1: 先排序,然后扫描一遍数组即可。。O(nlgn)
思路2: 总共 n 个数,对于那些大于 n 的数一定不会是我们的 first missing positive integer.
相当于我们有 n 个桶,每个桶应该从1开始到 n 放入数,第一个不满足的桶就是我们的结果。
class Solution {public: int firstMissingPositive(int A[], int n) { bucket_sort(A, n); for(int i=0; i<n; ++i) if(A[i] != i+1) return i+1; return n+1; }private: void bucket_sort(int A[], int n){ for(int i=0; i<n; ++i){ while(A[i] != i+1){ if(A[i] <= 0 || A[i] > n || A[i] == A[A[i]-1]) break; swap(A[i], A[A[i]-1]); } } }};
2 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
- VC学习——基于MFC的模拟时钟程序
- STC 外部中断范例
- 手工把一个PE文件装载起来了
- Java 面试题
- poj 2352 Stars(树状数组基础)
- First Missing Positive
- 程序员如何快速准备面试中的算法
- 九度oj 题目1109:连通图
- Matlab手动绘制bounding box,并获取其坐标
- spring事务
- hdu 4027
- Qt中 QObject类干了什么事情
- dojo之FilteringSelect
- Oracle创建用户、表空间、导入导出、...命令