Giả sử chúng ta có một ma trận đã cho, Chúng ta phải tìm một ma trận mới res, có thứ nguyên giống với ma trận đã cho, trong đó mỗi phần tử trong res [i, j] =tổng các phần tử của ma trận [r, c] với mỗi r ≤ i, và c ≤ j.
Vì vậy, nếu đầu vào giống như
8 | 2 |
7 | 4 |
thì đầu ra sẽ là
8 | 10 |
15 | 21 |
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nếu ma trận trống, thì
-
ma trận trả về
-
-
R:=số hàng của ma trận
-
C:=số cột của ma trận
-
đối với r trong phạm vi 1 đến R - 1, thực hiện
-
đối với c trong phạm vi 0 đến C - 1, thực hiện
-
matrix [r, c]:=matrix [r, c] + matrix [r - 1, c]
-
-
-
đối với r trong phạm vi 0 đến R - 1, thực hiện
-
đối với c trong phạm vi từ 1 đến C - 1, thực hiện
-
matrix [r, c]:=matrix [r, c] + matrix [r, c - 1]
-
-
-
ma trận trả về
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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))
Đầu vào
[[8, 2],[7, 4]]
Đầu ra
[[8, 10], [15, 21]]