Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาผลรวมของอีเล็มน์ต์ที่สร้างรูป Z ในเมทริกซ์ใน Python

ให้เมทริกซ์ 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