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]

  • 返回矩阵

示例

让我们看看下面的实现来更好地理解。

Open Compiler
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]]

更新于:2021年10月11日

89 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告