这两天琢磨这个算法, 终于有了结果. 下面以 8 个元素中取4个为例子
需要两个结构 stacks 和 remains, 他们是列表并需要排序, 先开始元素放置如下
stacks
1 | 2 | 3 | 4 |
5 | 6 | 6 | 8 |
remains
最简单的情况,把stacks和 remains刚好大于它的元素交换,就得到下个需要的数
stacks
1 | 2 | 3 | 5 |
4 | 6 | 6 | 8 |
remains
下面看复杂的情况, 8 在 remains 中不可能找到比它大的元素