在Python中寻找行和列持有后面行和列求和的矩阵

在Python中寻找行和列持有后面行和列求和的矩阵

假设我们有一个给定的矩阵,我们必须找到一个新的矩阵res,其尺寸与给定的矩阵相同,其中res [i,j]中的每个元素=矩阵[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]]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程