社区讨论
请问两串代码有何区别
题目总版参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lztnmdq0
- 此快照首次捕获于
- 2024/08/14 17:33 2 年前
- 此快照最后确认于
- 2024/08/14 20:03 2 年前
如下所示,a.push(x)这一串代码必须放在最后,也就是说必须先清空队首才可以把新的数字放入队列,为什么?
如果先放入队列,再清空队首就只得90分
蒟蒻膜拜各位大佬orz
CPP#include <bits/stdc++.h>
using namespace std;
bool m[1005]={};
queue <int> a;
int main (){
int i, n,x,ans=1;
cin >> i>> n>> x;
m[x]=1; a.push(x); n--; x=0;
while (n!=0){
cin >> x;
n--;
if (m[x]==0) {
m[x]=1;
ans++;
if (a.size()>=i) {m[a.front()]=0;a.pop();}//检测队列是否还有空位
a.push(x);//位置不可调换
}
}
cout << ans;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...