Compare BFS and Dijkstra.
01
01
Understand the problem
graphsshortest-path
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
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
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.