Menu
CoddyTech

Redundant Connection

Sebuah jaringan awalnya berbentuk tree: n node, bernomor dari 1 sampai n, dihubungkan oleh n-1 edge tak berarah tanpa siklus. Kemudian, satu edge lagi ditambahkan di antara dua node yang tidak terhubung secara langsung, sehingga daftar edges kini berisi n edge dan tepat satu siklus.

Kembalikan sebuah edge yang dapat kamu hapus agar n-1 edge lainnya kembali membentuk tree. Jika beberapa edge bisa dihapus, kembalikan edge yang muncul paling akhir di edges, sebagai pasangan [a, b] persis seperti yang tertulis di sana.

Fungsi

findRedundantConnection(edges: integer-2d-array) → integer-array
edgesinteger-2d-array
n sisi tak berarah, masing-masing berupa pasangan [a, b] dari simpul bernomor mulai dari 1
Mengembalikaninteger-array
sisi siklus yang muncul terakhir di edges, ditulis persis seperti di sana

Batasan

  • 3 ≤ n ≤ 5000, dengan n = edges.length
  • edges[i] = [a, b] dengan 1 ≤ a, b ≤ n dan a ≠ b
  • Tidak ada sisi yang muncul dua kali, dalam arah mana pun.
  • Sisi-sisi menghubungkan semua n simpul dan membentuk tepat satu siklus.

Contoh

Input
edges = [[1, 2], [1, 3], [2, 3]]
Output
[2, 3]
Penjelasan
Tiga sisi membentuk segitiga 1, 2, 3, jadi menghapus salah satunya akan menyisakan pohon. [2, 3] berada di urutan terakhir dalam daftar.
challenge icon

Pertanyaan lanjutan

Jika sisinya berarah dan graf aslinya berupa pohon berakar, sisi mana yang akan kamu hapus ketika sisi tambahan membuat sebuah simpul memiliki dua induk?

Reset kode
def findRedundantConnection(edges):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

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

Output yang diharapkan

[2, 3]