#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
#define itn int
queue<int>q;
int visit[1010] = { 0 };
int main()
{
itn ans = 0;
itn m, n; cin >> m >> n;
int a;
for (itn i = 1; i <= n; i++)
{
cin >> a;
int q_size = q.size();
if (!visit[a])
{
q.push(a);
visit[a]++;
ans++;
}
**if (q_size > m)
{
visit[q.front()]--;
q.pop();
}**
}
cout << ans;
}
这是第一个位置
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
#define itn int
queue<int>q;
int visit[1010] = { 0 };
int main()
{
itn ans = 0;
itn m, n; cin >> m >> n;
int a;
for (itn i = 1; i <= n; i++)
{
cin >> a;
int q_size = q.size();
if (!visit[a])
{
if (q_size == m)
{
visit[q.front()]--;
q.pop();
}
q.push(a);
visit[a]++;
ans++;
}
}
cout << ans;
}
这是第二个位置,第一个if的位置AC不了第二个可以