Menu
CoddyTech

Car Fleet

Arabalar tek şeritli bir yolda target miline doğru ilerliyor. i numaralı araba position[i] milinde başlıyor ve saatte speed[i] mil hızla ilerliyor. Hiçbir araba başka bir arabayı geçemez: daha yavaş bir arabaya yetişen araba onun hemen arkasında kalır ve o andan itibaren iki araba tek bir filo olarak daha yavaş hızda birlikte ilerler.

Tek bir araba da bir filo sayılır ve varış noktasında bir filoya tam olarak ulaşan araba bu filoya katılır. Varış noktasına ulaşan filo sayısını döndür.

Fonksiyon

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
her arabanın yöneldiği mil
positioninteger-array
her arabanın başlangıç kilometresi
speedinteger-array
her bir arabanın saatte mil cinsinden hızı
Döndürürinteger
hedefe ulaşan filo sayısı

Kısıtlar

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Tüm konumlar farklıdır.

Örnekler

Girdi
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Çıktı
2
Açıklama
Tek başlarına, 17, 14, 8 ve 2. millerdeki arabaların sırasıyla 3, 2, 3 ve 3 saate ihtiyacı vardır; bu nedenle 14’teki araba 17’dekini yakalar ve diğer ikisi onlara 20. milde ulaşır. 0’daki arabanın 10 saate ihtiyacı vardır ve tek başına varır.
challenge icon

Ek soru

Konumlar, target değerinden küçük tam sayılardır. Karşılaştırmalı sıralama kullanmadan, filoları O(n + target) sürede sayabilir misin?

Kodu sıfırla
def carFleet(target, position, speed):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

target = 20
position = [14, 2, 8, 17, 0]
speed = [3, 6, 4, 1, 2]

Beklenen Çıktı

2