Menu
CoddyTech

Find if Path Exists in Graph

Một đồ thị vô hướng có n nút, được đánh số từ 0 đến n-1. Mỗi phần tử [u, v] trong edges nối các nút u và v, và bạn có thể đi qua cạnh theo cả hai hướng. Trả về true nếu bạn có thể đi từ source đến destination theo các cạnh, nếu không thì trả về false. Một nút luôn có thể đi đến chính nó.

Hàm

validPath(n: integer, edges: integer-2d-array, source: integer, destination: integer) → boolean
ninteger
số lượng nút
edgesinteger-2d-array
các cạnh, mỗi cạnh là một cặp [u, v] gồm hai nút được kết nối
sourceinteger
nút mà bạn bắt đầu từ đó
destinationinteger
nút bạn muốn đi tới
Trả vềboolean
liệu một đường dẫn nào đó có nối nguồn với đích hay không

Ràng buộc

  • 2 ≤ n ≤ 104
  • 1 ≤ edges.length ≤ 5000
  • edges[i] = [u, v] với 0 ≤ u, v ≤ n-1 và u ≠ v
  • Không có cạnh nào xuất hiện hai lần, theo cả hai hướng.
  • 0 ≤ source, destination ≤ n-1

Ví dụ

Đầu vào
n = 6edges = [[0, 1], [1, 2], [2, 3], [4, 5]]source = 0destination = 3
Đầu ra
true
Giải thích
Đường đi 0 → 1 → 2 → 3 sử dụng ba cạnh, vì vậy có thể đi đến nút 3. Nút 4 và 5 tạo thành một phần riêng mà đường đi không cần đến.
challenge icon

Câu hỏi mở rộng

Giả sử các cạnh chỉ đi theo một chiều: [u, v] chỉ cho phép bạn đi từ u đến v. Cách nào trong ba cách tiếp cận vẫn hoạt động, và bạn cần thay đổi gì trong các cách đó?

Đặt lại code
def validPath(n, edges, source, destination):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Đối số

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

Đầu ra mong đợi

true