顽强的小白
1144 The Missing Number (20 分)
Given N integers, you are supposed to find the smallest positive integer that is NOT in the given list.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤105). Then N integers are given in the next line, separated by spaces. All the numbers are in the range of int.
Output Specification:
Print in a line the smallest positive integer that is missing from the input list.
Sample Input:
10
5 -25 9 6 1 3 4 2 5 17
Sample Output:
7
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=100005;
bool cmp(int a,int b){
return a<b;
}
int main(){ //简单题,注意一下下细节就好
int n,x;
int a[maxn];
scanf("%d",&n);
int j=0;
for(int i=0;i<n;++i){
scanf("%d",&x);
if(x>0){
a[j++]=x;
}
}
sort(a,a+j,cmp);
for(int i=0;i<j;++i){
a[i+1]-a[i]>=2){
printf("%d\n",a[i]+1);
return 0;
}
}
if(a[j-1]<0){ //全部是负数的情况,会有两个case考查这个
printf("1\n");
return 0;
}
printf("%d\n",a[j-1]+1);
return 0;
}