用 Python 對矩陣進行列排序
假設我們有一個矩陣,我們需要按照升序對每一列排序。
因此,如果輸入如下:
| 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,執行
- values := 將矩陣[col] 的元素作為向量
- 對於範圍為 0 到 R 的 row,執行
- res[row, col] := 從 values 中刪除最後一個元素
- 返回 res
讓我們看看以下實現,以獲得更好的理解:
示例
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]]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP