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