Menu
CoddyTech

Swim in Rising Water

Sana, 0'dan n²-1'e kadar olan her sayıyı tam olarak bir kez içeren, yüksekliği n × n olan bir ızgara veriliyor. t anında suyun yüksekliği her yerde t'dir; 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. Her ikisi de su altındayken, bir kenarı senin hücrenle ortak olan bir hücreye hiç zaman kaybetmeden yüzebilirsin. Sağ alt hücrede bulunabileceğin en erken zamanı döndür.

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'dan n²-1'e kadar her değer tam olarak bir kez görünür.

Örnekler

Girdi
grid = [[0, 2], [3, 1]]
Çıktı
2
Açıklama
Üst sağ hücreden geçen güzergâh 0, 2, 1 şeklindedir; en yüksek hücresi 2'dir. Alt sol hücreden geçen güzergâh 0, 3, 1 şeklindedir; en yüksek hücresi 3'tür. 2. zamanda ilk güzergâh su altındadır.
challenge icon

Ek soru

Eğer yükseklikler tekrar edebilse ve 10^9'a ulaşabilseydi, yaklaşımlarınızdan hangisi değişmeden çalışmaya devam ederdi ve ne üzerinde ikili arama yapardınız?

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

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

2