Compare BFS and Dijkstra.
Skip to solutionKEEP THE
hardDSA
When would you use BFS over Dijkstra for shortest paths?
647 views
01
Understand the problem
graphsshortest-path
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
Use plain BFS when edges are unweighted (or all equal weight) — it finds shortest paths in O(V+E). Use Dijkstra (with a heap) for non-negative weighted graphs. For negative weights use Bellman-Ford.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
BFS shortest path (unweighted)
Run Playgroundfrom collections import deque
def bfs_shortest(graph, src, dst):
q = deque([(src, 0)])
seen = {src}
while q:
node, dist = q.popleft()
if node == dst:
return dist
for nb in graph[node]:
if nb not in seen:
seen.add(nb)
q.append((nb, dist + 1))
return -1
# --- demo --- unweighted graph
graph = {0: [1, 2], 1: [0, 3], 2: [0, 3], 3: [1, 2, 4], 4: [3]}
print(bfs_shortest(graph, 0, 4)) # 305
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 115 of 127 decoded in the Data Structures & Algorithms track. One more won't hurt.