用于在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