Le migliori 150 intervisteFacile

Connessione ridondante

Guida dettagliata e implementazione Python per il problema della "Connessione ridondante".

Dichiarazione del problema

Facile

In questo problema, un albero è un grafo non orientato, connesso e privo di cicli.

Ti viene dato un grafo che inizia come un albero con n nodi etichettati da 1 a n, con l'aggiunta di un bordo aggiuntivo. Il bordo aggiunto ha due vertici diversi scelti da 1 a n e non era un bordo già esistente. Il grafico è rappresentato come un array di archi di lunghezza n dove bordi[i] = [ai, bi] indica che esiste un arco non orientato tra i nodi ai e bi.

Restituisce un arco che può essere rimosso in modo che il grafico risultante sia un albero di n nodi. Se sono presenti più risposte, restituire la risposta che si verifica per ultima nell'input.

Scrivi una funzione findRedundantConnection(edges: List[List[int]]) -> List[int].

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

Esempi

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?
Prendi in considerazione l'utilizzo di strutture dati specifiche di Graphs come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'editor
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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.