mot1ve @ 2023-04-04 17:21:32
为什么很多人写的是while(q1.size()&&q1.front()+k<=i)?因为是从1-i遍历的,如果不合法了一定会被这一次清除掉啊,怎么可能一次清除很多个呢?我认为if完全可以。
if(i>=k)
{
if(q1.size()&&q1.front()+k<=i)
{
q1.pop_front();
}
printf("%d ",a[q1.front()]);
}
by operator_ @ 2023-04-04 18:13:49
在这一题的确是正确的,但因为是模板,会有很多人写比较万能的写法吧(纯猜测)