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]]
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
[[8, 10], [15, 21]]
广告