哈希的思想是能够在常数时间内进行查找,哈希函数是具体的实现方法,应当各有不同。
class Solution {
public:
int firstMissingPositive(int A[], int n) {
if(n<=0) return 1;
for(int i=0;i<n;i++){
if(A[i]<=0) A[i]=n+3;//n+3为安全值
}
for(int i=0;i<n;i++){
if(abs(A[i])<=n) A[abs(A[i])-1]=-abs(A[abs(A[i])-1]);
}
for(int i=0;i<n;i++){
if(A[i]>0) return i+1;
}
return n+1;
}
};