懒得改了
2023-08-20 11:34:02
发布于:广东
6阅读
0回复
0点赞
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
int M, N;
cin >> M >> N;
vector<int> words(N);
for (int i = 0; i < N; i++) {
cin >> words[i];
}
unordered_map<int, int> memory;
int lookupCount = 0;
for (int i = 0; i < N; i++) {
if (memory.count(words[i]) == 0) { // 单词不存在于内存中
if (memory.size() >= M) { // 内存已满
auto earliestWord = memory.begin();
memory.erase(earliestWord);
}
memory[words[i]] = 1; // 添加新单词到内存
lookupCount++; // 查找词典次数加一
}
else{
memory[words[i]] = 1; // 更新内存中单词位置
}
}
cout << lookupCount << endl;
return 0;
}
这里空空如也
有帮助,赞一个