错题:

C

错因:

没想到po值为0的情况。

思路

运用集合来存数据,再从头遍历集合,每次判断是否*it!=opop==k若是则将po设为op,跳出循环,每次op++;,循环外如果po没值则po设为op。

参考代码

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
set<ll> s;
int main(){
    freopen("C.in","r",stdin);
    freopen("C.out","w",stdout);
    ll n,k,op=0,po=0;
    cin>>n>>k;
    for(ll i=0;i<n;i++){
        ll x; 
        cin>>x;
        s.insert(x);
    }
    for(auto it=s.begin();it!=s.end();it++){
        if(*it!=op||op==k){
            po=op;
            break;
        }
        op++;
    }
    if(po==0) po=op;
    cout<<po<<endl;
    return 0;
}

THE END