There are `n` cities connected by some number of flights. You are given an array `flights` where `flights[i] = [from_i, to_i, price_i]` indicates that there is a flight from city `from_i` to city `to_i` with cost `price_i`. You are also given three integers `src`, `dst`, and `k`. Return the cheapest price from `src` to `dst` with at most `k` stops. If there is no such route, return `-1`.
Modified Bellman-Ford or BFS
Since we have a constraint on the number of stops (`k`), we can use the Bellman-Ford algorithm and run it for exactly `k + 1` iterations. Alternatively, a BFS approach where we process the graph level by level (where each level corresponds to an additional stop) also works. Dijkstra can be tricky because a more expensive path with fewer stops might eventually be better after more processing.