Trace n = 3, flights = [[0,1,100],[1,2,100],[0,2,500]], src = 0, dst = 2, k = 0.
Init: dist = [0, inf, inf]. With k = 0, run round.
Round : Copy prev = [0, inf, inf]. Edge 0→1: prev[0] + 100 = 100 < inf, so dist[1] = 100. Edge 1→2: prev[1] + 100 = inf, no update. Edge 0→2: prev[0] + 500 = 500 < inf, so dist[2] = 500.
dist[2] = 500. With stops, only the direct flight works.
Now try k = 1 ( rounds). Round would update dist[2] = 200 via 0→1→2. Answer: .
You run k + 1 rounds, each scanning all edges: time. The distance array is space.