Python程式:尋找其行和列之和等於其後方行和列之和的矩陣
假設我們有一個給定的矩陣,我們需要找到一個新的矩陣res,其維度與給定矩陣相同,其中res[i, j] = matrix[r, c]中每個r ≤ i和c ≤ j的元素之和。
所以,如果輸入如下:
8 | 2 |
7 | 4 |
那麼輸出將是:
8 | 10 |
15 | 21 |
為了解決這個問題,我們將遵循以下步驟:
如果矩陣為空,則
返回矩陣
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]]
廣告