为什么很多人写的是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()]); }