150 najlepszych wywiadówŁatwe

Przepływ wody na Pacyfiku i Atlantyku

Szczegółowy przewodnik i implementacja Python dla problemu „Przepływu wody w Pacyfiku i Atlantyku”.

Oświadczenie o problemie

Łatwe

Istnieje prostokątna wyspa m x n, która graniczy zarówno z Oceanem Spokojnym, jak i Oceanem Atlantyckim. Ocean Spokojny dotyka lewej i górnej krawędzi wyspy, a Ocean Atlantycki dotyka prawej i dolnej krawędzi wyspy.

Wyspa jest podzielona na siatkę kwadratowych komórek. Otrzymujesz m x n całkowitą macierz wysokości, gdzie wysokość [r] [c] reprezentuje wysokość komórki nad poziomem morza we współrzędnych (r, c).

Woda deszczowa może przepływać do sąsiednich komórek bezpośrednio na północ, południe, wschód i zachód, jeśli wysokość sąsiedniej komórki jest mniejsza lub równa wysokości bieżącej komórki. Woda może przepływać z dowolnej komórki sąsiadującej z oceanem do tego oceanu.

Zwraca dwuwymiarową listę wyników współrzędnych siatki, gdzie wynik[i] = [ri, ci] oznacza, że ​​woda deszczowa może przepływać z komórki (ri, ci) zarówno do Pacyfiku, jak i Atlantyku.

Napisz funkcję pacificAtlantic(heights: List[List[int]]) -> List[List[int]].

Ograniczenia
  • m == len(heights)
  • n == len(heights[0])
  • 1 <= m, n <= 200
  • 0 <= heights[i][j] <= 10^5

Przykłady

Example 1
Input
heights = [[1,2,2,3,5],[3,2,3,4,4],[2,4,5,3,1],[6,7,1,4,5],[5,1,1,2,4]]
Output
[[0,4],[1,3],[1,4],[2,2],[3,0],[3,1],[4,0]]
Explanation

These coordinates can flow to both Pacific (via top/left) and Atlantic (via bottom/right) oceans.

Example 2
Input
heights = [[1]]
Output
[[0,0]]
Explanation

The single cell borders both oceans directly.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla 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.