Menu
CoddyTech

Find if Path Exists in Graph

やさしいグラフUnion-Findpython iconjava iconcpp iconc iconjs icon+10

無向グラフには n 個のノードがあり、番号は 0 から n-1 までです。edges の各要素 [u, v] はノード u と v をつなぎ、辺はどちらの方向にもたどることができます。辺に沿って source から destination まで移動できる場合は true を、そうでない場合は false を返してください。ノードは常に自分自身に到達できます。

関数

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
ノードの数
edgesinteger-2d-array
各辺は、接続されたノードのペア [u, v] です
sourceinteger
開始地点となるノード
destinationinteger
到達したいノード
戻り値boolean
あるパスがソースと宛先を結合するかどうか

制約

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v](0 ≤ u, v ≤ n-1かつu ≠ v)
  • どの辺も、どちらの向きでも2回現れることはありません。
  • 0 ≤ source, destination ≤ n-1

例

入力
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
出力
true
説明
経路 0 → 1 → 2 → 3 は3本の辺を使うため、ノード3に到達できます。ノード4と5は独立した部分を形成しており、この経路で通る必要はありません。

lock icon提出時に隠しテスト+16件

challenge icon

発展問題

辺が一方向だとします。[u, v]では、uからvへの移動のみが可能です。3つのアプローチのうち、引き続き使えるのはどれですか。また、それぞれどのように変更しますか?

コードをリセット
def validPath(n, edges, source, destination):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

入力

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

期待値

true