Menu
CoddyTech

Longest Increasing Path in a Matrix

Bạn nhận được matrix, một lưới gồm các số nguyên có m hàng và n cột, được biểu diễn dưới dạng danh sách các hàng. Một đường đi di chuyển lên, xuống, sang trái hoặc sang phải, không đi chéo và không vòng qua các cạnh, đồng thời mỗi bước phải đến một ô có giá trị lớn hơn nghiêm ngặt. Hãy trả về số ô trên đường đi dài nhất như vậy. Một ô đơn lẻ là đường đi gồm 1 ô.

Hàm

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
lưới giá trị, dưới dạng danh sách các hàng có độ dài bằng nhau
Trả vềinteger
số ô trên đường đi tăng nghiêm ngặt dài nhất

Ràng buộc

  • 1 ≤ m, n ≤ 100, trong đó m = matrix.length và n = matrix[i].length
  • Mỗi hàng có cùng độ dài n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Ví dụ

Đầu vào
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Đầu ra
7
Giải thích
Đường đi 3, 4, 5, 6, 7, 8, 9 đi xuống cột bên phải, men theo hàng dưới cùng rồi đi lên cột giữa để đến ô 9: có 7 ô. Từ giá trị nhỏ nhất, 1, những đường đi tốt nhất có 5 ô.
challenge icon

Câu hỏi mở rộng

Bạn cũng có thể trả về các ô trên một đường đi dài nhất, cùng với độ dài của đường đi đó không?

Đặt lại code
def longestIncreasingPath(matrix):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]

Đầu ra mong đợi

7