public class Solution {
public int firstMissingPositive(int[] A) {
int i = 0;
while (i<A.length) {
if (A[i]>0 && A[i]<A.length+1 && A[i]!=i+1 && A[i]!=A[A[i]-1]) swap(A, i, A[i]-1);
else i++;
}
for (i=0; i<A.length; i++) {
if (A[i]!=i+1) return i+1;
}
return A.length+1;
}
public void swap(int[] A, int a, int b) {
int temp = A[a];
A[a] = A[b];
A[b] = temp;
}
}
没有评论:
发表评论