Menu
CoddyTech

Redundant Connection

ネットワークは木として始まりました。n 個のノードがあり、1 から n まで番号が付けられ、サイクルを含まない無向辺 n-1 本でつながっていました。その後、直接つながっていない2つのノードの間に辺が1本追加されたため、リスト edges には現在 n 本の辺が含まれ、サイクルがちょうど1つあります。

その辺を1本削除すると、残りの n-1 本の辺が再び木を形成するような辺を返してください。該当する辺が複数ある場合は、edges 内で最後に現れるものを、そこに書かれているとおりの組 [a, b] で返してください。

関数

findRedundantConnection(edges: integer-2d-array) → integer-array
edgesinteger-2d-array
n 本の無向辺。それぞれは、1 から番号が付けられたノードのペア [a, b] です
戻り値integer-array
edges 内で最後に現れるサイクルの辺(そこに記載されているとおり)

制約

  • 3 ≤ n ≤ 5000(n = edges.lengthの場合)
  • edges[i] = [a, b]で、1 ≤ a, b ≤ nかつa ≠ b
  • どの辺も、どちらの向きであっても、2回現れることはありません。
  • 辺はすべての n 個のノードを接続し、ちょうど1つのサイクルを持ちます。

例

入力
edges = [[1, 2], [1, 3], [2, 3]]
出力
[2, 3]
説明
3つの辺は三角形 1, 2, 3 を形成するため、そのうちどれか1つを取り除くと木が残ります。[2, 3] はリストの最後にあります。
challenge icon

発展問題

辺が有向で、元のグラフが根付き木だった場合、追加された辺によってノードに2つの親ができるとき、どの辺を削除しますか?

コードをリセット
def findRedundantConnection(edges):
    # ここにコードを書いてください

テスト #1

テスト #2

引数

edges = [[1, 2], [1, 3], [2, 3]]

期待される出力

[2, 3]