Menu
CoddyTech

Longest Increasing Path in a Matrix

Kamu menerima matrix, kisi bilangan bulat dengan m baris dan n kolom, dalam bentuk list baris. Sebuah jalur bergerak ke atas, ke bawah, ke kiri, atau ke kanan, tanpa diagonal dan tanpa melewati tepi, dan setiap langkah harus menuju nilai yang lebih besar secara ketat. Kembalikan jumlah sel pada jalur terpanjang yang memenuhi syarat tersebut. Satu sel membentuk jalur dengan 1 sel.

Fungsi

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
kisi nilai, sebagai list baris dengan panjang yang sama
Mengembalikaninteger
jumlah sel pada jalur meningkat ketat terpanjang

Batasan

  • 1 ≤ m, n ≤ 100, dengan m = matrix.length dan n = matrix[i].length
  • Setiap baris memiliki panjang yang sama, yaitu n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Contoh

Input
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Output
7
Penjelasan
Jalur 3, 4, 5, 6, 7, 8, 9 melewati kolom kanan, sepanjang baris bawah, lalu naik melalui kolom tengah hingga 9: 7 sel. Dari nilai terkecil, 1, jalur terbaik memiliki 5 sel.
challenge icon

Pertanyaan lanjutan

Bisakah kamu juga mengembalikan sel-sel dari salah satu jalur terpanjang, beserta panjangnya?

Reset kode
def longestIncreasingPath(matrix):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

7