First Missing Positive
2014-04-05 00:36
183 查看
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.
Solution: Although we can only use constant space, we can still exchange elements within input A!
Swap elements in A and try to make all the elements in A satisfy: A[i] == i + 1.
Pick out the first one that does not satisfy A[i] == i + 1.
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.
Solution: Although we can only use constant space, we can still exchange elements within input A!
Swap elements in A and try to make all the elements in A satisfy: A[i] == i + 1.
Pick out the first one that does not satisfy A[i] == i + 1.
1 class Solution { 2 public: 3 int firstMissingPositive(int A[], int n) { 4 int i = 0; 5 while(i < n) { 6 if(A[i] != i+1 && A[i] >= 1 && A[i] <= n && A[i] != A[A[i]-1]) { 7 swap(A[i], A[A[i]-1]); 8 } 9 else i++; 10 } 11 for(int i = 0; i < n; i++) { 12 if(A[i] != i+1) return i+1; 13 } 14 return n+1; 15 } 16 };
相关文章推荐
- MissingNumber缺失的数字,FirstMissingPositive第一个缺失的正数
- First Missing Positive
- [leetcode] First Missing Positive
- [leetcode]First Missing Positive @ Python
- LeetCode First Missing Positive
- [leetcode] First Missing Positive
- *[Lintcode]First Missing Positive 丢失的第一个正整数
- LeetCode OJ算法题(四十):First Missing Positive
- 41. First Missing Positive
- First Missing Positive(重重)
- leetcode First Missing Positive
- 41. First Missing Positive
- LeetCode First Missing Positive
- LeetCode:First Missing Positive
- First Missing Positive
- 41. First Missing Positive
- [leetcode] #41 First Missing Positive
- 【leetcode】First Missing Positive
- Java for LeetCode 041 First Missing Positive
- First Missing Positive - LeetCode 41