/*
First Missing PositiveMar 8 '12
Given an unsorted integer array, find the first missing positive integer.
For example,
Given
and
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.
*/
class Solution {
public:
int firstMissingPositive(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int const MAX = 9000;
//parameter check
if(n<0) return 0;
//bounary check
if(n==0) return 1;
vector<int> bitMap;
int i;
for(i=0; i<MAX; i++){
bitMap.push_back(0);
}
for(i=0; i<n; i++){
if(A[i] > 0) {
bitMap.at(A[i]) = 1;
}
}
for(i=1; i<MAX; i++){
if(bitMap.at(i) == 0) return i;
}
return 0;
}
};
No comments:
Post a Comment