社区讨论

单调队列维护合法性的这里为什么都写的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完全可以。
CPP
if(i>=k)
{
	if(q1.size()&&q1.front()+k<=i)
	{
		q1.pop_front();
	}
	printf("%d ",a[q1.front()]);
}

回复

1 条回复,欢迎继续交流。

正在加载回复...