Menu
CoddyTech

Graph Valid Tree

0 ile n-1 arasında numaralandırılmış n düğüm ve yönsüz kenarlardan oluşan bir edges listesi veriliyor. Her [a, b] çifti, a düğümüyle b düğümünü birbirine bağlar.

Kenarlar tüm n düğümü tek bir ağaç hâline getiriyorsa true döndürün: Her düğüm diğer tüm düğümlere ulaşabilmeli ve döngü olmamalıdır. Aksi takdirde false döndürün.

Fonksiyon

validTree(n: integer, edges: integer-2d-array) → boolean
ninteger
0'dan n-1'e kadar numaralandırılmış düğüm sayısı
edgesinteger-2d-array
yönsüz kenarlar; her biri [a, b] çiftidir
Döndürürboolean
kenarlar tüm n düğümü tek bir ağaçta birleştiriyorsa true, aksi takdirde false

Kısıtlar

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [a, b] ile 0 ≤ a, b ≤ n-1 ve a ≠ b
  • Hiçbir kenar, yönü ne olursa olsun, iki kez görünmez.

Örnekler

Girdi
n = 5edges = [[0, 1], [0, 2], [0, 3], [1, 4]]
Çıktı
true
Açıklama
0. düğüm 1, 2 ve 3. düğümlere bağlanır; 4. düğüm ise 1. düğüme bağlıdır. Beş düğümün tamamını döngü olmadan dört kenar birleştirir, dolayısıyla bu bir ağaçtır.
challenge icon

Ek soru

Graf bir ağaç olmadığında, onu ağaca dönüştürmek için kaç kenarı çıkarmanız ve kaç kenar eklemeniz gerekir? İkisini de tek geçişte sayabilir misiniz?

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

Test #1

Test #2

Test #3

Argümanlar

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

Beklenen Çıktı

true