Menu
CoddyTech

Cheapest Flights Within K Stops

Ci sono n città, numerate da 0 a n-1, e un elenco di voli di sola andata: flights[i] = [from, to, price] è un volo dalla città from alla città to che costa price.

Restituisci il prezzo totale più basso per un viaggio da src a dst con al massimo k scali, ovvero al massimo k+1 voli. Se non esiste un viaggio del genere, restituisci -1.

Funzione

findCheapestPrice(n: integer, flights: integer-2d-array, src: integer, dst: integer, k: integer) → integer
ninteger
il numero di città
flightsinteger-2d-array
i voli di sola andata, ciascuno come [from, to, price]
srcinteger
la città da cui parte il viaggio
dstinteger
la città in cui termina il viaggio
kinteger
il numero massimo di fermate consentite tra src e dst
Restituisceinteger
il prezzo più basso di un viaggio con al massimo k fermate, oppure -1

Vincoli

  • 2 ≤ n ≤ 1000
  • 1 ≤ flights.length ≤ 4500
  • flights[i] = [from, to, price] con 0 ≤ from, to < n e from ≠ to
  • 1 ≤ price ≤ 104
  • Non ci sono due voli che condividano sia from sia to.
  • 0 ≤ src, dst < n e src ≠ dst
  • 0 ≤ k < n

Esempi

Input
n = 4flights = [[0, 1, 50], [1, 2, 50], [2, 3, 50], [0, 2, 200], [1, 3, 180]]src = 0dst = 3k = 1
Output
230
Spiegazione
Uno scalo consente due voli: 0 → 1 → 3 costa 50 + 180 = 230 e 0 → 2 → 3 costa 200 + 50 = 250. Il percorso più economico, 0 → 1 → 2 → 3, fa due scali.
challenge icon

Per approfondire

Come restituiresti le città del viaggio più economico e il suo prezzo?

Ripristina il codice
def findCheapestPrice(n, flights, src, dst, k):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

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

Output atteso

230