Find Matrix with Row and Column Sums in Python
Suppose we have a given matrix, We have to find a new matrix res, whose dimension is same as the given matrix where each element in res[i, j] = sum of the elements of matrix[r, c] for each r ≤ i, and c ≤ j.
So, if the input is like
8 | 2 |
7 | 4 |
then the output will be
8 | 10 |
15 | 21 |
To solve this, we will follow these steps −
if matrix is empty, then
return matrix
R := row count of matrix
C := column count of matrix
for r in range 1 to R - 1, do
for c in range 0 to C - 1, do
matrix[r, c] := matrix[r, c] + matrix[r - 1, c]
for r in range 0 to R - 1, do
for c in range 1 to C - 1, do
matrix[r, c] := matrix[r, c] + matrix[r, c - 1]
return matrix
Example
Let us see the following implementation to get better understanding
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))
Input
[[8, 2],[7, 4]]
Output
[[8, 10], [15, 21]]
Advertisements