#include<iostream>
#include<cmath>
#include <algorithm>
#include<queue>
using namespace std;
queue<int> ram;
int m,n;
bool in[1001];
int z=1;
int ans=0;
int main()
{
cin>>m>>n;
for(int i=1; i<=n; i++)
{
int a;
cin>>a;
if(!in[a])
{
if(ram.size()<m)
{
ram.push(a);
in[a]=1;
ans++;
}
else
{
in[ram.front()]=0;
ram.pop();
ram.push(a);
in[a]=1;
ans++;
}
}
}
cout<<ans;
return 0;
}
#include<cmath>
#include <algorithm>
#include<queue>
using namespace std;
queue<int> ram;
int m,n;
bool in[1001];
int z=1;
int ans=0;
int main()
{
cin>>m>>n;
for(int i=1; i<=n; i++)
{
int a;
cin>>a;
if(!in[a])
{
if(ram.size()<m)
{
ram.push(a);
in[a]=1;
ans++;
}
else
{
in[ram.front()]=0;
ram.pop();
ram.push(a);
in[a]=1;
ans++;
}
}
}
cout<<ans;
return 0;
}
本文介绍了一种使用C++实现的LRU(Least Recently Used)缓存算法。该算法利用队列和数组来跟踪缓存项的最近使用情况,并在缓存已满时移除最久未使用的项。通过简单的输入输出示例展示了如何维护一个固定大小的缓存。
2万+

被折叠的 条评论
为什么被折叠?



