ให้เมทริกซ์ n x n หาผลรวมอีเล็มน์ต์ที่สร้างรูป Z: แถวแรก, แถวสุดท้าย, และแนวทแยงมุม (จากขวาบนไปซ้ายล่าง ยกเว้นมุม)
ตัวอย่าง: 4 3 2 9 1 8 2 5 6 → 4+3+2 + 2+5+6 + 1 = 23
อัลกอริธึม
- ถ้า n ≤ 2: ผลรวมทุกอีเล็มน์ต์
- รวมแถวแรก + แถวสุดท้าย + แนวทแยงมุม (i, n-1-i) สำหรับ i=1..n-2
การนำไปใช้
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)) # 23