Menu
CoddyTech

Find if Path Exists in Graph

Um grafo não direcionado tem n nós, numerados de 0 a n-1. Cada entrada [u, v] de edges conecta os nós u e v, e você pode percorrer uma aresta em qualquer direção. Retorne true se for possível ir de source a destination pelas arestas, e false caso contrário. Um nó sempre pode alcançar a si mesmo.

Função

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
o número de nós
edgesinteger-2d-array
as arestas, cada uma um par [u, v] de nós conectados
sourceinteger
o nó do qual você começa
destinationinteger
o nó que você deseja alcançar
Retornaboolean
se algum caminho une a origem e o destino

Restrições

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v] com 0 ≤ u, v ≤ n-1 e u ≠ v
  • nenhuma aresta aparece duas vezes, em nenhuma das direções.
  • 0 ≤ source, destination ≤ n-1

Exemplos

Entrada
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
Saída
true
Explicação
O percurso 0 → 1 → 2 → 3 usa três arestas, então o nó 3 é alcançável. Os nós 4 e 5 formam uma parte separada de que o percurso nunca precisa.

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Suponha que as arestas sejam de mão única: [u, v] permite que você vá de u para v apenas. Quais das três abordagens ainda funcionam e o que você mudaria nelas?

Redefinir código
def validPath(n, edges, source, destination):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Entrada

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

Esperado

true