查字典·题解
2023-08-22 20:14:26
发布于:浙江
24阅读
0回复
0点赞
思路:
模拟一个很逊的查找软件。
- 定义队列,输入
m
和n
- 重复输入
n
次数字 - 如果输入的数字不存在,在
dict
里标记,查找次数增加,并添加到队列,如果队列溢出,取消对队列里最早加入的数字的标记并从队列删除
代码:
#include<bits/stdc++.h>
using namespace std;
map<int,bool> dict;
queue<int> q;
int m,n,cnt,num;
int main(){
cin>>m>>n;
while(n--){
cin>>num;
if(dict[num]==0) dict[num]=1,cnt++,q.push(num);
if(q.size()>m) dict[q.front()]=0,q.pop();
}
cout<<cnt;
}
这里空空如也
有帮助,赞一个