Menu
CoddyTech

Swim in Rising Water

Her sayıyı tam olarak bir kez içeren, satır listesi olarak verilmiş yüksekliklerden oluşan n × n boyutunda bir ızgaranız var; sayılar 0 ile n²-1 arasındadır. Yağmur 0 anında başlar ve t anında su her yerde t yüksekliğindedir; dolayısıyla yüksekliği t veya daha az olan her hücre su altındadır. Sol üst hücrede başlarsınız. İkisi de su altındayken bir hücreden kenar paylaştığı bir hücreye yüzebilirsiniz ve yüzmek zaman almaz. Sağ alt hücrede bulunabileceğiniz en erken zamanı döndürün.

Fonksiyon

swimInWater(grid: integer-2d-array) → integer
gridinteger-2d-array
yükseklikler, her biri n sayıdan oluşan n satırlık bir liste olarak
Döndürürinteger
sağ alt hücreye ulaşabileceğin en erken zaman

Kısıtlar

  • n == grid.length == grid[i].length
  • 1 ≤ n ≤ 100
  • 0 ≤ grid[i][j] ≤ n²-1
  • 0 ile n²-1 arasındaki her değer tam olarak bir kez görünür.

Örnekler

Girdi
grid = [[0, 2], [3, 1]]
Çıktı
2
Açıklama
Sağ üst hücreden geçen rota 0, 2, 1 şeklindedir ve en yüksek hücresi 2'dir. Sol alt hücreden geçen rota 0, 3, 1 şeklindedir ve en yüksek hücresi 3'tür. 2. zamanda ilk rota su altında kalır, bu yüzden cevap 2'dir.

lock iconGönderirken +13 gizli test

challenge icon

Ek soru

Yükseklikler tekrarlanabilse ve 10^9'a ulaşabilse, yaklaşımlarından hangisi hiçbir değişiklik yapmadan çalışmaya devam ederdi ve ne üzerinde ikili arama yapardın?

Kodu sıfırla
def swimInWater(grid):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

grid = [[0, 2], [3, 1]]

Beklenen

2