给定一个长度为N的序列,须要输出该序列中最小的没有出现的正整数算法
使用map记录全部输入的正数,而后从1开始一直向后查找map中没有出现的正数,而后输出退出循环便可。数组
#include<cstdio> #include<unordered_map> using namespace std; unordered_map<int,bool> a; int main(){ int N; scanf("%d",&N); for(int i=0;i<N;++i){ int b; scanf("%d",&b); if(b>=0){ a[b] = 1;// 标记全部输入的正数为1 } } for(int i=1;;++i){ if(a[i]==0){ printf("%d",i); break; } } return 0; }