题目描述
给出n个互不相同的整数a[i],从小到大找第一个没有出现过的整数。
输入格式
第一行一个正整数n,之后是n个整数a[i];(1<=n<=3000 1<=a[i]<=3000)
输出格式
一个整数x,即第一个没有出现过的整数。
输入输出样列
输入样例1:
3
1 7 2
输出样例1:
3
思路:第一次拿到这道题目时候,想了一下题目的意思,不知道输出的3是啥意思,后来研究了一下,把输入的数据进行排序,从第一个数开始比,如果相等,那么就一直跟着累加
#include <iostream>
#include <cmath>
#include <iomanip>
#include <algorithm>
using namespace std;
int main() {
int n ,a [3005] = {} ;
cin >> n ;
for (int i = 1; i <= n ; i ++) // 因为 1<= a[i] <= ..
{
cin >> a[i] ;
}
sort ( a + 1 ,a + n + 1 ) ;
for ( int i = 1 ,x = 1; i <= n ; i ++ )
{
if ( x == a[i])
{
x ++ ;
}
else
{
cout << x << endl ;
break ;
}
}
return 0;
}
虎嗅细嗅:17611134175