(a, b)
| 6 | } |
| 7 | |
| 8 | function findPath_set(a, b) { |
| 9 | let work = [[a]]; |
| 10 | let reached = new Set([a]); |
| 11 | for (let path of work) { |
| 12 | let end = path[path.length - 1]; |
| 13 | if (end == b) return path; |
| 14 | for (let next of end.edges) { |
| 15 | if (!reached.has(next)) { |
| 16 | reached.add(next); |
| 17 | work.push(path.concat([next])); |
| 18 | } |
| 19 | } |
| 20 | } |
| 21 | } |
| 22 | |
| 23 | time(findPath_set); |
| 24 |