---
# System prepended metadata

title: 1787. Cheapest Flights Within K Stops
tags: [graph]

---

---
title: 1787. Cheapest Flights Within K Stops
tags: graph
description: share source code.
---

# 787. Cheapest Flights Within K Stops

```java=
class Solution {
    
   static class Edge{
        int val;
        int w;
        int k;
        
        public Edge(int val, int w, int k){
            this.val = val;
            this.w = w;
            this.k = k;
        }
    }
    
    
    public int findCheapestPrice(int n, int[][] flights, int src, int dst, int k) {
        
        List<Edge> [] graph = new ArrayList[n + 1];
        Arrays.setAll(graph, v -> new ArrayList<>());
        for(int flight [] : flights){
            graph[flight[0]].add(new Edge(flight[1], flight[2], 0));
        }
        
        PriorityQueue<Edge> q = new PriorityQueue<>( ( a, b) -> a.w - b.w);
        q.offer(new Edge(src, 0, 0));
        
        int dist [] = new int [n + 1];
        
        while(!q.isEmpty()){
            Edge edge = q.poll();
     
            if(edge.val == dst){
                return edge.w;
            }
        
            if(edge.k > k){
                continue;
            }
            for(Edge v : graph[edge.val]){                
                q.offer(new Edge(v.val, dist[v.val], edge.k + 1));
            }
        }
        
        return -1; 
    }
}
```

