Menu
CoddyTech

Car Fleet

Le auto percorrono una strada a una sola corsia verso il miglio target. L'auto i parte dal miglio position[i] e viaggia a speed[i] miglia orarie. Nessuna auto può sorpassarne un'altra: un'auto che raggiunge un'altra più lenta le resta subito dietro e, da quel momento, le due auto procedono insieme alla velocità più lenta, formando un'unica flotta.

Anche una sola auto costituisce una flotta e un'auto che raggiunge una flotta esattamente alla destinazione si unisce a essa. Restituisci il numero di flotte che arrivano a destinazione.

Funzione

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
il miglio verso cui sono dirette tutte le auto
positioninteger-array
il miglio di partenza di ogni auto
speedinteger-array
la velocità di ogni auto, in miglia all’ora
Restituisceinteger
il numero di flotte che raggiungono la destinazione

Vincoli

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Tutte le posizioni sono diverse.

Esempi

Input
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Output
2
Spiegazione
Da soli, le auto ai miglia 17, 14, 8 e 2 impiegano rispettivamente 3, 2, 3 e 3 ore, quindi quella al miglio 14 raggiunge quella al miglio 17 e le altre due le raggiungono al miglio 20. L’auto al miglio 0 impiega 10 ore e arriva da sola.
challenge icon

Per approfondire

Le posizioni sono numeri interi minori di target. Riesci a contare le flotte in tempo O(n + target), senza un ordinamento per confronto?

Ripristina il codice
def carFleet(target, position, speed):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

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

Output atteso

2