输出一个int型序列的第一个不存在的正数。
思路,先将所有数据存入数组。然后排序。
先遍历完所有负数,再逐个遍历正数。
一开始未考虑 所有数字都小于零的可能。
后来又未考虑 int数组会把所有未被定义的元素赋值为0
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
int N,a[100010];
int main(){
cin>>N;
for(int i=0;i<N;i++){
cin>>a[i];
}
sort(a,a+N);
int num=0;
while(a[num]<0)
num++;
while(a[num]==a[num+1])
num++;
while(a[num]+1==a[num+1]){
num++;
while(a[num]==a[num+1])
num++;
}
if(a[num]>0)
cout<<a[num]+1<<endl;
else
cout<<"1"<<endl;
return 0;
}