1、 ## 【问题描述】
给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。
【输入形式】
第一行包括一个整数n,第二行为n个整数,以空格分开
【输出形式】
数组中未出现的最小正整数
【样例1输入】
3
1 2 3
【样例1输出】
4
【样例2输入】
4
-5 3 2 3
【样例2输出】
1
2、代码:
-------感谢评论区一位大佬的评论,之前的代码有个问题我没有注意到,现在改过来啦!!----------------------
#include<iostream>
using namespace std;
int main(){
int n,x,flag=1;//不管怎么样,最小的正整数只能是从1开始
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>x;
a[i]=x;
}
for(int i=0;i<n;i++){
if(flag==a[i]){
flag++;
i=-1//要使数据再次从数组的开始的元素去比较!!!
continue;
}
}
cout<<flag;
}