Menu
CoddyTech

Longest Increasing Path in a Matrix

Satır listesi olarak, m satır ve n sütundan oluşan tam sayılardan oluşan bir ızgara olan matrix verilir. Bir yol, her seferinde bir adım yukarı, aşağı, sola veya sağa ilerleyerek hücreden hücreye gider (çapraz adımlar yoktur ve kenarlardan dönülmez) ve her adımda kesinlikle daha büyük bir değere sahip hücreye ulaşılmalıdır. Böyle bir en uzun yol üzerindeki hücre sayısını döndür. Tek bir hücre de 1 hücrelik bir yoldur.

Fonksiyon

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
eşit uzunluktaki satırlardan oluşan bir liste olarak değerler ızgarası
Döndürürinteger
en uzun kesin artan yoldaki hücre sayısı

Kısıtlar

  • 1 ≤ m, n ≤ 100, burada m = matrix.length ve n = matrix[i].length
  • Her satırın uzunluğu aynıdır: n.
  • 0 ≤ matrix[i][j] ≤ 231-1

Örnekler

Girdi
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
Çıktı
7
Açıklama
3, 4, 5, 6, 7, 8, 9 yolu sağ sütundan aşağı, alt satır boyunca sola, orta sütundan yukarı ve köşedeki 9'a doğru sola ilerler: 7 hücre. En küçük değer daha kötü sonuç verir: 1'den başlayan en iyi yollar 1, 2, 7, 8, 9 ve 1, 6, 7, 8, 9'dur; her biri 5 hücreden oluşur.

lock iconGönderirken +18 gizli test

challenge icon

Ek soru

Yalnızca uzunluğunu değil, en uzun yollardan birinin hücrelerini de döndürebilir misin?

Kodu sıfırla
def longestIncreasingPath(matrix):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

7