题目:
题解:
一个可行的思路是 queue + multiset 解决。queue模拟这个过程,multiset实现快速查找。
代码:
#include<bits/stdc++.h>
using namespace std;
multiset<int>s;
queue<int>q;
int main(){
int m,n;
scanf("%d%d",&m,&n);
int ans=0;
for(int i=0;i<n;i++){
int x;
scanf("%d",&x);
if(s.find(x)==s.end()){
ans++;
q.push(x);
s.insert(x);
}
if(q.size()>m){
s.erase(q.front());
q.pop();
}
}
printf("%d",ans);
return 0;
}