社区讨论
单调队列维护合法性的这里为什么都写的while,if也可以啊
P1886【模板】单调队列 / 滑动窗口参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lo2td884
- 此快照首次捕获于
- 2023/10/23 19:28 2 年前
- 此快照最后确认于
- 2023/10/23 19:28 2 年前
为什么很多人写的是while(q1.size()&&q1.front()+k<=i)?因为是从1-i遍历的,如果不合法了一定会被这一次清除掉啊,怎么可能一次清除很多个呢?我认为if完全可以。
CPPif(i>=k)
{
if(q1.size()&&q1.front()+k<=i)
{
q1.pop_front();
}
printf("%d ",a[q1.front()]);
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...