Cho ma trận vuông n x n M, tìm tổng các phần tử tạo thành hình chữ Z trong ma trận.
Ví dụ, ma trận:
| 4 | 3 | 2 |
| 9 | 1 | 8 |
| 2 | 5 | 6 |
23, vì các phần tử là 4+3+2+1+2+5+6 = 23.
Các bước giải quyết:
n:= số hàng của ma trận.- Nếu
n <= 2, trả về tổng tất cả phần tử. first_row:= tổng hàng đầu tiên.last_row:= tổng hàng cuối cùng.diagonal:= tổngM[i][n-1-i]vớiitừ 1 đếnn-2.- Trả về
first_row + last_row + diagonal.
Ví dụ minh họa
class Solution:
def solve(self, matrix):
n = len(matrix)
if n <= 2:
return sum(sum(row) for row in matrix)
first_row = sum(matrix[0])
last_row = sum(matrix[n-1])
diagonal = sum(matrix[i][n-1-i] for i in range(1, n-1))
return first_row + last_row + diagonal
ob = Solution()
matrix = [
[4, 3, 2],
[9, 1, 8],
[2, 5, 6]
]
print(ob.solve(matrix))
Đầu vào
matrix = [[4, 3, 2], [9, 1, 8], [2, 5, 6]]
Đầu ra
23