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 (≤). 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
注意点:考虑两种极端情况; 1.所有数都小于零 2.所有数都大于1
1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using namespace std; 5 int main(){ 6 int n, i; 7 cin>>n; 8 vector<int> v(n); 9 for(i=0; i<n; i++) cin>>v[i]; 10 sort(v.begin(), v.end()); 11 if(v[0]>1)cout<<v[0]-1<<endl; 12 if(v[n-1]<0)cout<<1<<endl; 13 else{ 14 for(i=0; i<n; i++) if(v[i]>=0) break; 15 bool flag=true; 16 for(; i<n-1; i++){ 17 if(v[i+1]-v[i]>1){ 18 cout<<v[i]+1<<endl; 19 flag=false; 20 break; 21 } 22 } 23 if(flag) cout<<v[n-1]+1<<endl; 24 } 25 return 0; 26 }