Menu
CoddyTech

Car Fleet

Los autos circulan por una carretera de un solo carril hacia la milla target. El auto i comienza en la milla position[i] y circula a speed[i] millas por hora. Ningún auto puede adelantar a otro: un auto que alcanza a uno más lento se queda justo detrás de él y, a partir de ese momento, ambos avanzan juntos a la velocidad más lenta como una sola flota.

Un solo auto también constituye una flota, y un auto que alcanza a una flota justo en el destino se une a ella. Devuelve la cantidad de flotas que llegan al destino.

Función

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
la milla hacia la que se dirigen todos los coches
positioninteger-array
la milla inicial de cada automóvil
speedinteger-array
la velocidad de cada automóvil, en millas por hora
Devuelveinteger
el número de flotas que llegan al destino

Restricciones

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Todas las posiciones son diferentes.

Ejemplos

Entrada
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Salida
2
Explicación
Por sí solos, los coches situados en las millas 17, 14, 8 y 2 necesitan 3, 2, 3 y 3 horas, así que el de la milla 14 alcanza al de la milla 17 y los otros dos los alcanzan en la milla 20. El coche situado en la milla 0 necesita 10 horas y llega solo.
challenge icon

Para ir más allá

Las posiciones son enteros menores que target. ¿Puedes contar las flotas en tiempo O(n + target), sin una ordenación por comparación?

Restablecer código
def carFleet(target, position, speed):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

2