Menu
CoddyTech

Cheapest Flights Within K Stops

n şehir vardır; bu şehirler 0 ile n-1 arasında numaralandırılmıştır ve tek yönlü uçuşların listesi verilmiştir: flights[i] = [from, to, price], from şehrinden to şehrine price ücretli bir uçuşu ifade eder.

Yol boyunca en fazla k aktarma, yani en fazla k+1 uçuş içeren src şehrinden dst şehrine bir yolculuğun en düşük toplam ücretini döndürün. Böyle bir yolculuk yoksa -1 döndürün.

Fonksiyon

findCheapestPrice(n: integer, flights: integer-2d-array, src: integer, dst: integer, k: integer) → integer
ninteger
şehir sayısı
flightsinteger-2d-array
tek yönlü uçuşlar, her biri [from, to, price] biçiminde
srcinteger
Gezinin başladığı şehir
dstinteger
seyahatin sona erdiği şehir
kinteger
src ile dst arasında izin verilen en fazla durak sayısı
Döndürürinteger
en fazla k duraklı bir yolculuğun en düşük fiyatı ya da -1

Kısıtlar

  • 2 ≤ n ≤ 1000
  • 1 ≤ flights.length ≤ 4500
  • flights[i] = [from, to, price] olmak üzere 0 ≤ from, to < n ve from ≠ to
  • 1 ≤ price ≤ 104
  • Hiçbir iki uçuş hem from hem de to değerlerini paylaşmaz.
  • 0 ≤ src, dst < n ve src ≠ dst
  • 0 ≤ k < n

Örnekler

Girdi
n = 4flights = [[0, 1, 50], [1, 2, 50], [2, 3, 50], [0, 2, 200], [1, 3, 180]]src = 0dst = 3k = 1
Çıktı
230
Açıklama
Bir durak iki uçuşa izin verir: 0 → 1 → 3 50 + 180 = 230 tutar ve 0 → 2 → 3 200 + 50 = 250 tutar. Daha ucuz olan 0 → 1 → 2 → 3 iki durak yapar.
challenge icon

Ek soru

En ucuz seyahatin şehirlerini ve fiyatını nasıl döndürürdünüz?

Kodu sıfırla
def findCheapestPrice(n, flights, src, dst, k):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

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

Beklenen Çıktı

230