在 Python 中恢复洗牌队列的程序
假设我们有一个二维矩阵,其中每行包含两个值 [height, count],表示人的身高和在他们前面至少与他们一样高的人数。现在考虑这个队列被洗牌了,我们需要恢复队列的原始顺序。
因此,如果输入如下:
2 | 2 |
---|---|
4 | 0 |
5 | 0 |
则输出将是:
4 | 0 |
---|---|
5 | 0 |
2 | 2 |
为了解决这个问题,我们将按照以下步骤进行:
- N := 矩阵行数
- 基于身高递增和人数递减重新排列矩阵行
- ans := 大小为 N 的列表,初始所有条目均为 null
- 对于矩阵行中的每个身高 h 和人数 c,请执行以下操作:
- temp := 0
- 对于每个索引 i 和值 num ans,请执行以下操作:
- 如果 temp >= c,且 num 为空,则
- ans[i] := [h, c]
- 跳出循环
- 如果 num 为空或 num[0] >= h,则
- temp := temp + 1
- 返回 ans
让我们看下面的实现,以更好地理解:
更多Python相关文章,请阅读:Python 教程