用 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]]

更新於:9 月 22,2020

2K+ 瀏覽

開啟你的 職業

透過完成課程獲得認證

開始吧
廣告
© . All rights reserved.