Menu
CoddyTech

Graph Valid Tree

Kamu mendapatkan n node, bernomor dari 0 hingga n-1, dan sebuah list edges yang berisi edge tak berarah. Setiap pasangan [a, b] menghubungkan node a dan node b.

Kembalikan true jika edge tersebut membentuk satu tree yang mencakup semua n node: setiap node dapat mencapai semua node lainnya, dan tidak ada siklus. Jika tidak, kembalikan false.

Fungsi

validTree(n: integer, edges: integer-2d-array) → boolean
ninteger
jumlah node, bernomor dari 0 sampai n-1
edgesinteger-2d-array
edge tak berarah, masing-masing berupa pasangan [a, b]
Mengembalikanboolean
true jika sisi-sisinya menghubungkan semua n simpul menjadi satu pohon, false jika tidak

Batasan

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [a, b] dengan 0 ≤ a, b ≤ n-1 dan a ≠ b
  • Tidak ada sisi yang muncul dua kali, dalam arah mana pun.

Contoh

Input
n = 5edges = [[0, 1], [0, 2], [0, 3], [1, 4]]
Output
true
Penjelasan
Node 0 terhubung ke node 1, 2, dan 3, sedangkan node 4 terhubung ke node 1. Empat sisi menghubungkan kelima node tanpa perulangan, jadi ini adalah tree.
challenge icon

Pertanyaan lanjutan

Jika graf bukan tree, berapa banyak edge yang harus kamu hapus, dan berapa banyak yang harus kamu tambahkan agar graf itu menjadi tree? Bisakah kamu menghitung keduanya dalam satu kali lintasan?

Reset kode
def validTree(n, edges):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

true