Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

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


Cho ma trận vuông n x n M, tìm tổng các phần tử tạo thành hình chữ Z trong ma trận.

Ví dụ, ma trận:

432
918
256
Đầu ra là 23, vì các phần tử là 4+3+2+1+2+5+6 = 23.

Các bước giải quyết:

  • n := số hàng của ma trận.
  • Nếu n <= 2, trả về tổng tất cả phần tử.
  • first_row := tổng hàng đầu tiên.
  • last_row := tổng hàng cuối cùng.
  • diagonal := tổng M[i][n-1-i] với i từ 1 đến n-2.
  • Trả về first_row + last_row + diagonal.

Ví dụ minh họa

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