first missing positive

 1 class Solution {
 2 public:
 3     int firstMissingPositive(int A[], int n) {
 4         // Start typing your C/C++ solution below
 5         // DO NOT write int main() function
 6         if (n == 0) return 1;
 7         int i=0;
 8         while(i<n)
 9         {
10             if( A[i]>0 && A[i] < n && A[A[i]-1]!=A[i])
11             {
12                 int tmp = A[A[i]-1];
13                 A[A[i]-1] = A[i];
14                 A[i] = tmp;
15             }
16             else
17                 i++;
18          }
19       int k = 0;
20       while (k < n && A[k] == k+1) k++;
21       return k+1;           
22     }
23 };

 

 

posted on 2013-09-06 17:09  jumping_grass  阅读(154)  评论(0)    收藏  举报

导航