You are viewing a single comment's thread. Return to all comments →
Javascript
function bfs(numOfNodes, numOfEdges, edges, start) { let edgesMap = new Map(), queue = [[start, 0]], visit = new Map([[start, 0]]) for (let i = 1; i <= numOfNodes; i++) edgesMap.set(i, new Set()) edges.forEach(([n1, n2]) => { edgesMap.get(n1).add(n2); edgesMap.get(n2).add(n1) }) while (queue.length) { let [i, distance] = queue.shift() edgesMap.get(i).forEach(neighbor => { if (!visit.has(neighbor)) { visit.set(neighbor, distance + 6) queue.push([neighbor, distance + 6]) } }) } let result = [] for (let i = 1; i <= numOfNodes; i++) { if (i == start) continue result.push(visit.has(i) ? visit.get(i) : -1) } return result }
Seems like cookies are disabled on this browser, please enable them to open this website
Breadth First Search: Shortest Reach
You are viewing a single comment's thread. Return to all comments →
Javascript