#include <iostream>
#include <queue>
using namespace std;
#define sign(a){a>0 ? 1:-1}
int main() {
int m, n;
int temp;
bool flag = false;
int count = 0;
cin >> m >> n;//m是内存容量,n是单词个数
queue<int> q;//内存
while (n--) {
flag = false;
cin >> temp;
for (int i = 0; i < q.size(); i++)
{
if (temp == q.front()) {
flag = true;
}
q.push(q.front());
q.pop();
}
if (flag) {
continue;
}
else {
count++;
if (q.size() == m) {
q.pop();
q.push(temp);
}
else {
q.push(temp);
}
}
}
cout << count;
return 0;
}
用了个偷懒的queue,很方便就能实现题意中的先进先出
注意点:队列的pop函数只负责出队,并不会返回队头元素。