Menu
CoddyTech

Redundant Connection

Bir ağ başlangıçta bir ağaçtı: 1 ile n arasında numaralandırılmış n düğüm, döngü içermeyen n-1 yönsüz kenarla birbirine bağlıydı. Ardından, doğrudan bağlı olmayan iki düğüm arasına bir kenar daha eklendi; böylece edges listesi artık n kenar içeriyor ve tam olarak bir döngü barındırıyor.

Diğer n-1 kenarın yeniden bir ağaç oluşturması için kaldırabileceğiniz bir kenarı döndürün. Birden fazla kenar uygunsa, edges içinde en son görüneni, orada yazıldığı biçimiyle tam olarak [a, b] çifti olarak döndürün.

Fonksiyon

findRedundantConnection(edges: integer-2d-array) → integer-array
edgesinteger-2d-array
n yönsüz kenar; her biri, 1'den başlayarak numaralandırılmış düğümlerden oluşan [a, b] çiftidir
Döndürürinteger-array
edges içinde en son görünen, orada yazıldığı şekliyle çevrim kenarı

Kısıtlar

  • 3 ≤ n ≤ 5000, burada n = edges.length
  • edges[i] = [a, b] olacak şekilde 1 ≤ a, b ≤ n ve a ≠ b
  • Hiçbir kenar, yön fark etmeksizin iki kez görünmez.
  • Kenarlar tüm n düğümü birbirine bağlar ve tam olarak bir döngü içerir.

Örnekler

Girdi
edges = [[1, 2], [1, 3], [2, 3]]
Çıktı
[2, 3]
Açıklama
Üç kenar 1, 2, 3 üçgenini oluşturur, bu yüzden bunlardan herhangi birini kaldırmak bir ağaç bırakır. [2, 3] listedeki son öğedir.
challenge icon

Ek soru

Halkalar yönlendirilmiş ve özgün grafik köklü bir ağaç olsaydı, fazladan kenar bir düğüme iki ebeveyn verdiğinde hangi kenarı kaldırırdınız?

Kodu sıfırla
def findRedundantConnection(edges):
    # Kodu buraya yazın

Test #1

Test #2

Argüman

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

Beklenen Çıktı

[2, 3]