150 najlepszych wywiadówŁatwe

Połączenie nadmiarowe

Szczegółowy przewodnik i implementacja Python dla problemu „Połączenia nadmiarowego”.

Oświadczenie o problemie

Łatwe

W tym zadaniu drzewo jest grafem nieskierowanym, który jest spójny i nie ma cykli.

Otrzymasz graf, który zaczął się jako drzewo z n węzłami oznaczonymi od 1 do n, z dodaną jedną dodatkową krawędzią. Dodana krawędź ma dwa różne wierzchołki wybrane od 1 do n i nie jest krawędzią, która już istniała. Wykres jest reprezentowany jako tablica krawędzi o długości n, gdzie krawędzie[i] = [ai, bi] wskazują, że pomiędzy węzłami ai i bi istnieje nieskierowana krawędź.

Zwróć krawędź, którą można usunąć, tak aby powstały graf był drzewem n węzłów. Jeśli istnieje wiele odpowiedzi, zwróć odpowiedź, która występuje jako ostatnia w danych wejściowych.

Napisz funkcję findRedundantConnection(edges: List[List[int]]) -> List[int].

Ograniczenia
  • n == len(edges)
  • 3 <= n <= 1000
  • edges[i].length == 2
  • 1 <= ai < bi <= n
  • ai != bi

Przykłady

Example 1
Input
edges = [[1,2],[1,3],[2,3]]
Output
[2,3]
Explanation

Removing edge [2,3] breaks the cycle 1-2-3-1, leaving a valid tree 1-2 and 1-3.

Example 2
Input
edges = [[1,2],[2,3],[3,4],[1,4],[1,5]]
Output
[1,4]
Explanation

The cycle is 1-2-3-4-1. The last edge in the input that is part of this cycle is [1,4].

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.