#include<iostream>
#include<queue>
using namespace std;
int Hash[1003] = { 0 };
queue<int>mem;
int main()
{
int m, n;
cin >> m >> n;
int cnt = 0;//查字典的次数
while (n--)
{
int en;
cin >> en;//输入一个英文单词
if (!Hash[en])
{
++cnt;
mem.push(en);
Hash[en] = 1;
while (mem.size() > m)
{
Hash[mem.front()] = 0;
mem.pop();
}
}
}
cout << cnt << endl;
return 0;
}
这道题让我了解了STL queue模块
queue<type>队列名(p) 创建队列
p.pop()//删除队首元素
p.front()//返回队首元素
p.back()//返回队尾元素
p.push(i)//把i放进队列尾
p.size()//返回队列元素个数
p.empty()//判断队列是否为空
还有就是用哈希检查内存中有没有单词,hash[i]=1表示单词i在内存中