150 najlepszych wywiadówŁatwe

Pływaj we wznoszącej się wodzie

Szczegółowy przewodnik i implementacja Python dla problemu „Pływanie we wznoszącej się wodzie”.

Oświadczenie o problemie

Łatwe

Otrzymujesz siatkę macierzy liczb całkowitych n x n, w której każda siatka wartości [i] [j] reprezentuje wysokość w tym punkcie (i, j). Zaczyna padać deszcz. W chwili t głębokość wody wszędzie wynosi t. Możesz przepłynąć z kwadratu do innego sąsiadującego kwadratu w 4 kierunkach wtedy i tylko wtedy, gdy oba wzniesienia na kwadratach wynoszą co najwyżej t.

Zaczynasz od lewego górnego kwadratu (0, 0). Jaki jest najkrótszy czas, zanim dotrzesz do prawego dolnego kwadratu (n-1, n-1)?

Napisz funkcję swimInWater(grid: List[List[int]]) -> int.

Ograniczenia
  • n == len(grid) == len(grid[i])
  • 1 <= n <= 50
  • 0 <= grid[i][j] < n^2
  • Each value grid[i][j] is unique

Przykłady

Example 1
Input
grid = [[0,2],[1,3]]
Output
3
Explanation

At time 3, you are permitted to swim all the way from (0,0) to (1,1). The path is 0 -> 1 -> 3.

Example 2
Input
grid = [[0,1,2,3,4],[24,23,22,21,5],[12,13,14,15,16],[11,17,18,19,20],[10,9,8,7,6]]
Output
16
Explanation

The final path is 0-1-2-3-4-5-16-15-14-13-12-11-10-9-8-7-6. The maximum height along this path is 16.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla zaawansowanych wykresów, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Otwórz w Edytorze
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.