Menu
CoddyTech

Car Fleet

Autos fahren auf einer einspurigen Straße in Richtung Meilenmarke target. Auto i startet an der Meilenmarke position[i] und fährt mit speed[i] Meilen pro Stunde. Kein Auto kann ein anderes überholen: Ein Auto, das auf ein langsameres aufschließt, bleibt direkt dahinter, und von da an fahren beide gemeinsam mit der niedrigeren Geschwindigkeit als eine Kolonne.

Auch ein einzelnes Auto ist eine Kolonne, und ein Auto, das genau am Ziel zu einer Kolonne aufschließt, schließt sich ihr an. Gib die Anzahl der Kolonnen zurück, die am Ziel ankommen.

Funktion

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
die Meile, auf die jedes Auto zufährt
positioninteger-array
die Startmeile jedes Autos
speedinteger-array
die Geschwindigkeit jedes Autos in Meilen pro Stunde
Gibt zurückinteger
die Anzahl der Flotten, die das Ziel erreichen

Einschränkungen

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Alle Positionen sind unterschiedlich.

Beispiele

Eingabe
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Ausgabe
2
Erklärung
Allein benötigen die Autos bei Meile 17, 14, 8 und 2 jeweils 3, 2, 3 und 3 Stunden. Daher holt das Auto bei Meile 14 das bei Meile 17 ein, und die beiden anderen erreichen sie bei Meile 20. Das Auto bei Meile 0 benötigt 10 Stunden und kommt allein an.
challenge icon

Weiterführende Frage

Die Positionen sind ganze Zahlen unterhalb von target. Kannst du die Flotten in O(n + target) Zeit zählen, ohne einen vergleichsbasierten Sortieralgorithmus zu verwenden?

Code zurücksetzen
def carFleet(target, position, speed):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

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

Erwartete Ausgabe

2