- 難度:
Easy - 花費時間:
- 題目: 1971. Find if Path Exists in Graph
給你一張包含 n 個節點的圖,這張圖的每個節點會沿著邊緣 edge 連向其他節點(不會連向自己)。
給你 source 跟 destination 兩個節點,判斷 source 有沒有辦法透過 dege 走到 destination 。
點我開啟限制與範例
限制:
1 <= n <= 2 * 10^50 <= edges.length <= 2 * 10^5edges[i].length == 20 <= ui, vi <= n - 1ui != vi0 <= source, destination <= n - 1- There are no duplicate edges.
- There are no self edges.
Example 1:

1 | Input: n = 3, edges = [[0,1],[1,2],[2,0]], source = 0, destination = 2 |
Example 2:

1 | Input: n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], source = 0, destination = 5 |
第一印象
- 用遍歷做
- 感覺用
BFS會更好 - 先確定
source可以連到哪 - 如果有碰到
destination就回傳true - 沒碰到,那就繼續往下個找。
- 找過的
edge刪掉 - 最後沒有
edge就回傳false
筆記
- 深度優先遍歷陣列
- 找出最大跟最小的值
- 每次訪問都比大小,如果更大就更新結果
- 回傳結果
程式
1 | function maxAncestorDiff(root: TreeNode | null): number { |
成績
| <!-- Language | Runtime | Beats | Memory Usage | Beats |
|---|---|---|---|---|
| TS iterative | 91 ms | 74.63% | 44.7 MB | 18.41% |
| TS recursive | 80 ms | 82.21% | 43.9 MB | 87.98% --> |
