Python程式:尋找其行和列之和等於其後方行和列之和的矩陣


假設我們有一個給定的矩陣,我們需要找到一個新的矩陣res,其維度與給定矩陣相同,其中res[i, j] = matrix[r, c]中每個r ≤ i和c ≤ j的元素之和。

所以,如果輸入如下:

82
74

那麼輸出將是:

810
1521

為了解決這個問題,我們將遵循以下步驟:

  • 如果矩陣為空,則

    • 返回矩陣

  • R := 矩陣的行數

  • C := 矩陣的列數

  • 對於r從1到R-1,執行:

    • 對於c從0到C-1,執行:

      • matrix[r, c] := matrix[r, c] + matrix[r - 1, c]

  • 對於r從0到R-1,執行:

    • 對於c從1到C-1,執行:

      • matrix[r, c] := matrix[r, c] + matrix[r, c - 1]

  • 返回矩陣

示例

讓我們看看下面的實現來更好地理解。

def solve(matrix):
   if not matrix:
      return matrix

   R, C = len(matrix), len(matrix[0])
   for r in range(1, R):
         for c in range(C):
            matrix[r][c] += matrix[r - 1][c]

   for r in range(R):
      for c in range(1, C):
         matrix[r][c] += matrix[r][c - 1]

   return matrix

matrix = [
   [8, 2],
   [7, 4]
]
print(solve(matrix))

輸入

[[8, 2],[7, 4]]

輸出

[[8, 10], [15, 21]]

更新於:2021年10月11日

89 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告