用 Python 编写程序,查找行和列为行和列总和的矩阵

pythonserver side programmingprogramming更新于 2025/12/18 11:24:17

假设我们有一个给定的矩阵,我们必须找到一个新的矩阵 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 范围内,执行

      • 矩阵[r, c] := 矩阵[r, c] + 矩阵[r - 1, c]

  • 对于 r 在 0 到 R - 1 范围内,执行

    • 对于 c 在 1 到 C - 1 范围内,执行

      • 矩阵[r, c] := 矩阵[r, c] + 矩阵[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]]

相关文章


有用资源