假设我们有一个矩阵,我们必须按升序对每一列进行排序。
所以,如果输入像
11 | 21 | 31 |
6 | 6 | 4 |
1 | 11 | 8 |
那么输出将是
1 | 6 | 4 |
6 | 11 | 8 |
11 | 21 | 31 |
为了解决这个问题,我们将遵循以下步骤-
R:=矩阵的行数,C:=矩阵的列数
res:=与给定矩阵大小相同的矩阵,并用0填充
对于0到C范围内的col,请执行
res [row,col]:=从值中删除最后一个元素
values:=将元素作为矩阵的向量[col]
对于0到R范围内的行,请执行
返回资源
让我们看下面的实现以更好地理解-
class Solution: def solve(self, matrix): R = len(matrix) C = len(matrix[0]) res = [[0] * C for _ in range(R)] for col in range(C): values = [r[col] for r in matrix] values.sort(reverse=True) for row in range(R): res[row][col] = values.pop() return res ob = Solution()matrix = [[11, 21, 31],[6, 6, 4],[1, 11, 8]] print(ob.solve(matrix))
[[11, 21, 31], [6, 6, 4], [1, 11, 8]]
输出结果
[[1, 6, 4],[6, 11, 8],[11, 21, 31]]