leetcode - First Missing Positive
2013-04-12 16:06 张汉生 阅读(149) 评论(0) 编辑 收藏 举报题目描述:点击此处
利用到原来的数组空间,不知道符不符合题意。
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 int i, j; 7 for (i=0; i<n; i++){ 8 if (A[i]<=0 || A[i]>n) 9 A[i] = 0; 10 } 11 i=0; 12 while (i<n){ 13 if (A[i]>0){ 14 j = A[i] - 1; 15 if (A[j]>0 && A[A[j]-1]!=-1){ 16 A[i] = A[j]; 17 A[j] =-1; 18 continue; 19 } 20 A[j] = -1; 21 A[i] = 0; 22 } 23 i++; 24 } 25 i=0; 26 while (i<n && A[i]==-1) 27 i++; 28 return i+1; 29 } 30 };