Menu
CoddyTech

Find if Path Exists in Graph

Sebuah graf tak berarah memiliki n simpul, bernomor dari 0 hingga n-1. Setiap entri [u, v] dalam edges menghubungkan simpul u dan v, dan kamu dapat melewati sisi dalam kedua arah. Kembalikan true jika kamu dapat berjalan dari source ke destination melalui sisi-sisi tersebut, dan false jika tidak. Sebuah simpul selalu dapat mencapai dirinya sendiri.

Fungsi

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
jumlah node
edgesinteger-2d-array
sisi-sisinya, masing-masing berupa pasangan [u, v] dari simpul yang terhubung
sourceinteger
node tempat kamu memulai
destinationinteger
node yang ingin kamu capai
Mengembalikanboolean
apakah suatu jalur menghubungkan sumber dan tujuan

Batasan

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

Contoh

Input
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
Output
true
Penjelasan
Lintasan 0 → 1 → 2 → 3 menggunakan tiga sisi, jadi simpul 3 dapat dijangkau. Simpul 4 dan 5 membentuk bagian terpisah yang tidak diperlukan dalam lintasan tersebut.
challenge icon

Pertanyaan lanjutan

Misalkan sisi-sisinya hanya memiliki satu arah: [u, v] memungkinkan kamu berjalan hanya dari u ke v. Manakah dari tiga pendekatan yang masih berfungsi, dan apa yang perlu kamu ubah pada pendekatan tersebut?

Reset kode
def validPath(n, edges, source, destination):
    # Tulis kodemu di sini

Tes #1

Tes #2

Argumen

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

Output yang diharapkan

true