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

Tìm số ô chứa giá trị lớn nhất trong ma trận sau khi cập nhật trong Python

Cho ma trận n x n khởi tạo 0. Danh sách các cặp (r, c). Với mỗi cặp, tăng 1 tất cả ô có hàng < r và cột < c. Sau tất cả cập nhật, đếm số ô có giá trị lớn nhất.

Ví dụ: input_list=[[3,5],[4,6],[5,3]] → kết quả 9.

Giải thuật

  • Giá trị lớn nhất nằm ở góc trên bên trái của hình chữ nhật giao của tất cả các vùng cập nhật.
  • Tìm min_row = min(r_i), min_col = min(c_i).
  • Số ô = min_row * min_col.

Ví dụ mã Python

def solve(input_list):
    xpos = 0
    ypos = 0
    for item in input_list:
        if xpos == 0:
            xpos = item[0]
            ypos = item[1]
        else:
            xpos = min(xpos, item[0])
            ypos = min(ypos, item[1])
    return xpos * ypos

print(solve([[3, 5], [4, 6], [5, 3]]))  # Output: 9

Đầu vào

[[3, 5], [4, 6], [5, 3]]

Đầu ra

9