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

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


สมมติว่าเรามีเมทริกซ์ขนาด 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