用于在python中恢复经过改组的人员队列的程序

假设我们有一个2D矩阵,其中每行包含两个值[height,count],这些值指示人的身高已给定,并且前面有“计数”个数字的人至少与他们一样高。现在考虑改组此队列,我们必须恢复队列的原始顺序。

所以,如果输入像

2
2
4
0
5
0

那么输出将是

4
0
5
0
2
2

为了解决这个问题,我们将按照以下步骤操作:

  • N:=矩阵的行数

  • 根据高度增加和数量减少重新排列矩阵行

  • ans:=制作一个大小为N的列表,最初所有条目均为null

  • 对于每个高度h,并在矩阵行中计数c,

    • 如果temp> = c并且num为null,则

    • 如果num为null或num [0]> = h,则

    • ans [i]:= [h,c]

    • 从循环中出来

    • 温度:=温度+ 1

    • 温度:= 0

    • 对于每个索引i和值num ans,执行

    • 返回ans

    让我们看下面的实现以更好地理解:

    示例

    class Solution:

       def solve(self, matrix):

          N = len(matrix)

          matrix.sort(key=lambda x: [x[0], -x[1]])

          ans = [None] * N

          for h, c in matrix:

             temp = 0

             for i, num in enumerate(ans):

                if temp >= c and num is None:

                   ans[i] = [h, c]

                   break

                if num is None or num[0] >= h:

                   temp += 1

          return ans

    ob = Solution()matrix = [

       [2, 2],

       [4, 0],

       [5, 0]

    ]

    print(ob.solve(matrix))

    输入值

    [[2, 2],[4, 0],[5, 0]]

    输出结果

    [[4, 0], [5, 0], [2, 2]]

    以上是 用于在python中恢复经过改组的人员队列的程序 的全部内容, 来源链接: utcz.com/z/316051.html

    回到顶部