Giả sử chúng ta có một n x n ma trận M, chúng ta phải tìm tổng của tất cả các phần tử tạo thành hình Z trong ma trận.
Vì vậy, nếu đầu vào giống như
4 | 3 | 2 |
9 | 1 | 8 |
2 | 5 | 6 |
thì đầu ra sẽ là 23, vì các phần tử là [4 + 3 + 2 + 1 + 2 + 5 + 6] =23.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- n:=số hàng của ma trận
- nếu n <=2, thì
- trả về tổng của tất cả các phần tử trong ma trận
- first_row:=tổng của hàng đầu tiên
- last_row:=tổng của hàng cuối cùng
- đường chéo =tổng của ma trận [i, n-1-i] với mọi i từ 1 đến n-2
- return first_row + last_row + đường chéo
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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