因为 只要没有替换到最后一个数,我们心里的那个队列其实还是原始队列。...即,只要栈没有被替换完,新插入的值永远只起到一个占位作用,目的是为了让新来的值好插入,但如果真的没有新来的值可插入了,那虽然栈内容不对,但至少长度是对的,因为 9 在没替换完的时候其实不是 9,它只是一个占位...所以不管怎么换,只要没替换掉最后一个,这个替换操作都是无效的,我们再拿一个例子来看:
可见,1, 2, 3, 4 不能把 7, 8, 9, 10, 11 都替换完,因此最后结果是 1, 2, 3, 4...还没有完全替换完 10, 11, 12, 13,更小的也一定从最左边开始替换,因为栈内数字是单调递增的。...那么全部替换完,或者从某个数字开始,向右替换完,此时队列中的数字一定都是相对顺序正确的。