Menu
CoddyTech

Cheapest Flights Within K Stops

יש n ערים, שממוספרות מ־0 עד n-1, ורשימה של טיסות בכיוון אחד: flights[i] = [from, to, price] היא טיסה מהעיר from לעיר to שעולה price.

החזירו את המחיר הכולל הנמוך ביותר של נסיעה מ־src ל־dst שעוברת דרך לכל היותר k תחנות ביניים, כלומר לכל היותר k+1 טיסות. אם אין נסיעה כזאת, החזירו -1.

פונקציה

findCheapestPrice(n: integer, flights: integer-2d-array, src: integer, dst: integer, k: integer) → integer
ninteger
מספר הערים
flightsinteger-2d-array
הטיסות בכיוון אחד, כל אחת בתור [from, to, price]
srcinteger
העיר שבה הטיול מתחיל
dstinteger
העיר שבה הטיול מסתיים
kinteger
מספר התחנות המרבי המותר בין src ל-dst
מחזירהinteger
המחיר הנמוך ביותר של נסיעה עם לכל היותר k עצירות, או ‎-1

אילוצים

  • 2 ≤ n ≤ 1000
  • 1 ≤ flights.length ≤ 4500
  • flights[i] = [from, to, price] כאשר 0 ≤ from, to < n ו-from ≠ to
  • 1 ≤ price ≤ 104
  • אין שתי טיסות שחולקות גם את from וגם את to.
  • 0 ≤ src, dst < n וגם src ≠ dst
  • 0 ≤ k < n

דוגמאות

קלט
n = 4flights = [[0, 1, 50], [1, 2, 50], [2, 3, 50], [0, 2, 200], [1, 3, 180]]src = 0dst = 3k = 1
פלט
230
הסבר
עצירה אחת מאפשרת שתי טיסות: 0 → 1 → 3 עולה 50 + 180 = 230, ו־0 → 2 → 3 עולה 200 + 50 = 250. המסלול הזול יותר, 0 → 1 → 2 → 3, כולל שתי עצירות.
challenge icon

שאלת המשך

איך תחזיר את הערים שבטיול הזול ביותר וגם את מחירו?

איפוס הקוד
def findCheapestPrice(n, flights, src, dst, k):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

n = 4
flights = [[0, 1, 50], [1, 2, 50], [2, 3, 50], [0, 2, 200], [1, 3, 180]]
src = 0
dst = 3
k = 1

הפלט הצפוי

230