Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm tổng các phần tử tạo thành hình chữ Z trên ma trận bằng Python

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