Menu
CoddyTech

Car Fleet

MoyenPileTripython iconjava iconcpp iconc iconjs icon+10

Des voitures roulent sur une route à une seule voie vers le point kilométrique target. La voiture i démarre au point kilométrique position[i] et roule à speed[i] miles par heure. Aucune voiture ne peut en dépasser une autre : une voiture qui rattrape une voiture plus lente reste juste derrière elle et, dès lors, les deux avancent ensemble à la vitesse la plus lente, formant une seule flotte.

Une voiture seule constitue aussi une flotte, et une voiture qui rejoint une flotte exactement à destination s’y intègre. Retournez le nombre de flottes qui arrivent à destination.

Fonction

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
le mile vers lequel se dirigent toutes les voitures
positioninteger-array
le kilométrage initial de chaque voiture
speedinteger-array
la vitesse de chaque voiture, en miles par heure
Renvoieinteger
le nombre de flottes qui atteignent la destination

Contraintes

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Toutes les positions sont différentes.

Exemples

Entrée
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Sortie
2
Explication
Seules, les voitures aux miles 17, 14, 8 et 2 ont besoin de 3, 2, 3 et 3 heures ; la voiture à 14 rattrape donc celle à 17, et les deux autres les rejoignent au mile 20. La voiture à 0 a besoin de 10 heures et arrive seule.
challenge icon

Pour aller plus loin

Les positions sont des entiers inférieurs à target. Peux-tu compter les flottes en O(n + target), sans tri par comparaison ?

Réinitialiser le code
def carFleet(target, position, speed):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

2