Menu
CoddyTech

Find if Path Exists in Graph

Un grafo no dirigido tiene n nodos, numerados del 0 al n-1. Cada entrada [u, v] de edges conecta los nodos u y v, y puedes recorrer una arista en cualquiera de las dos direcciones. Devuelve true si puedes ir de source a destination a lo largo de las aristas, y false en caso contrario. Un nodo siempre puede llegar a sí mismo.

Función

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
el número de nodos
edgesinteger-2d-array
las aristas, cada una un par [u, v] de nodos conectados
sourceinteger
el nodo desde el que empiezas
destinationinteger
el nodo al que quieres llegar
Devuelveboolean
si alguna ruta une el origen y el destino

Restricciones

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v] con 0 ≤ u, v ≤ n-1 y u ≠ v
  • No hay ninguna arista que aparezca dos veces, en ninguna dirección.
  • 0 ≤ source, destination ≤ n-1

Ejemplos

Entrada
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
Salida
true
Explicación
El recorrido 0 → 1 → 2 → 3 usa tres aristas, así que el nodo 3 es alcanzable. Los nodos 4 y 5 forman una parte separada que el recorrido nunca necesita.

lock icon+16 pruebas ocultas al enviar

challenge icon

Para ir más allá

Supón que las aristas son unidireccionales: [u, v] te permite ir de u a v solamente. ¿Cuáles de los tres enfoques siguen funcionando y qué cambias en ellos?

Restablecer código
def validPath(n, edges, source, destination):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Entrada

n = 6
edges = [[0, 1], [1, 2], [2, 3], [4, 5]]
source = 0
destination = 3

Esperado

true