Menu
CoddyTech

Cheapest Flights Within K Stops

Es gibt n Städte, nummeriert von 0 bis n-1, und eine Liste von Einwegflügen: flights[i] = [from, to, price] ist ein Flug von Stadt from nach Stadt to, der price kostet.

Gib den niedrigsten Gesamtpreis für eine Reise von src nach dst zurück, bei der es unterwegs höchstens k Zwischenstopps gibt, was höchstens k+1 Flügen entspricht. Wenn es keine solche Reise gibt, gib -1 zurück.

Funktion

findCheapestPrice(n: integer, flights: integer-2d-array, src: integer, dst: integer, k: integer) → integer
ninteger
die Anzahl der Städte
flightsinteger-2d-array
die Einwegflüge, jeweils als [from, to, price]
srcinteger
die Stadt, in der die Reise beginnt
dstinteger
die Stadt, in der die Reise endet
kinteger
die meisten zulässigen Haltestellen zwischen src und dst
Gibt zurückinteger
der niedrigste Preis einer Reise mit höchstens k Zwischenstopps oder -1

Einschränkungen

  • 2 ≤ n ≤ 1000
  • 1 ≤ flights.length ≤ 4500
  • flights[i] = [from, to, price] mit 0 ≤ from, to < n und from ≠ to
  • 1 ≤ price ≤ 104
  • Keine zwei Flüge haben dieselben Werte für from und to.
  • 0 ≤ src, dst < n und src ≠ dst
  • 0 ≤ k < n

Beispiele

Eingabe
n = 4flights = [[0, 1, 50], [1, 2, 50], [2, 3, 50], [0, 2, 200], [1, 3, 180]]src = 0dst = 3k = 1
Ausgabe
230
Erklärung
Ein Zwischenstopp erlaubt zwei Flüge: 0 → 1 → 3 kostet 50 + 180 = 230 und 0 → 2 → 3 kostet 200 + 50 = 250. Die günstigere Route 0 → 1 → 2 → 3 umfasst zwei Zwischenstopps.
challenge icon

Weiterführende Frage

Wie würdest du die Städte der günstigsten Reise sowie ihren Preis zurückgeben?

Code zurücksetzen
def findCheapestPrice(n, flights, src, dst, k):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

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

Erwartete Ausgabe

230