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 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.