LAG挑戰資深實習生 BFS 程式面試考題
解法
其實再上一篇後沒多就,就有朋友提到:「那麼我需要花多久時間完成題目呢?」。
恩…我也挺好奇的。
實際上也就那幾天就已經自己量時間測驗過了。雖然是有些馬後炮,但我花了16分18秒完成第一個版本(repl.it):
async function searchGraph(start) {
let visited = new Set();
let curr_nodes = new Set([start]);
let next_nodes = new Set();
while(curr_nodes.size > 0) {
next_nodes = new Set();
for(let node of curr_nodes) {
console.log(node);
visited.add(node);
let neighbours = await fetchNeighbours(node);
neighbours.data.forEach((node) => {
if(!visited.has(node)){
next_nodes.add(node);
}
})
}
curr_nodes = next_nodes;
}
}
然後又花了14分鐘27秒調整成第二個版本(repl.it):
此外,其實我覺得Terry後續的部份引導還不錯的。有讓我想到其他調整方式…