题目:给定一个无序数组,返回数组中未出现的最小正整数。
例如:
【-1,1,3,4,5】 返回2
【3,2,1,4】 返回5
解题:
变量定义:
l:当前状态已出现1-l
r:当前状态最好状况下达到1-r
初始值l=0,r=n表明最开始希望后面将出现1-n共n个整数
int solve(int *inut,int len){
int l,r;
l = 0;
t = len;
while(l<r){
if(input[l] == l+1){
l++;
}else if(input[l] <= l || input[l] > r || input[l] == input[input[l]-1]){
input[l] = input[r--];
}else{
swap(input[l],input[input[l]-1]);
}
}
}