Skip to content

Instantly share code, notes, and snippets.

@cmattey
Last active August 28, 2019 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cmattey/6a6d8c4734fbac97ccb91a01a2485f7a to your computer and use it in GitHub Desktop.
Save cmattey/6a6d8c4734fbac97ccb91a01a2485f7a to your computer and use it in GitHub Desktop.
from collections import defaultdict
import heapq
def findCheapestPrice(self, n: int, flights: List[List[int]], src: int, dst: int, K: int) -> int:
flight_map = defaultdict(list)
for start, end, price in flights:
flight_map[start].append([end,price])
heap = [(0, -1, src)] #price, stops, city
while heap:
cur_price, stops, cur_city = heapq.heappop(heap)
if stops>k:
continue
if cur_city==dst:
return cur_price
for neighbor, price in flight_map[cur_city]:
heapq.heappush(heap, (cur_price+price, stops+1, neighbor))
return -1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment