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

Số lớn trong ma trận Python

Cho ma trận, đếm số phần tử có giá trị lớn nhất cả trong hàng và cột của nó.

Ví dụ: ma trận 3x3, kết quả 2 (số 6 và 7 thỏa mãn).

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

  • Tìm max mỗi hàng: r_maxes
  • Tìm max mỗi cột: c_maxes (dùng zip để chuyển vị)
  • Duyệt từng ô (r,c): nếu mat[r][c] == r_maxes[r] == c_maxes[c] thì đếm
  • Trả về số lượng

Ví dụ mã Python

class Solution:
    def solve(self, matrix):
        mat = matrix
        trans_mat = list(zip(*matrix))
        r_maxes = [max(row) for row in mat]
        c_maxes = [max(t_row) for t_row in trans_mat]
        a = []
        for r in range(len(mat)):
            for c in range(len(trans_mat)):
                v = mat[r][c]
                if (r_maxes[r], c_maxes[c]) == (v, v):
                    a.append(v)
        return len(a)

ob = Solution()
matrix = [[1, 3, 2], [4, 6, 5], [1, 5, 7]]
print(ob.solve(matrix))

Đầu vào

[[1, 3, 2], [4, 6, 5], [1, 5, 7]]

Đầu ra

2