Menu
CoddyTech

Car Fleet

Os carros trafegam por uma estrada de uma faixa em direção ao marco target. O carro i começa no marco position[i] e trafega a speed[i] milhas por hora. Nenhum carro pode ultrapassar outro: um carro que alcança um mais lento permanece logo atrás dele e, a partir daí, os dois se movem juntos, na velocidade mais baixa, como uma única frota.

Um carro sozinho também forma uma frota, e um carro que alcança uma frota exatamente no destino se junta a ela. Retorne o número de frotas que chegam ao destino.

Função

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
o quilômetro para onde todos os carros estão indo
positioninteger-array
o quilômetro inicial de cada carro
speedinteger-array
a velocidade de cada carro, em milhas por hora
Retornainteger
o número de frotas que chegam ao destino

Restrições

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Todas as posições são diferentes.

Exemplos

Entrada
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Saída
2
Explicação
Sozinhos, os carros nas milhas 17, 14, 8 e 2 precisam de 3, 2, 3 e 3 horas, então o carro na milha 14 alcança o da milha 17, e os outros dois os alcançam na milha 20. O carro na milha 0 precisa de 10 horas e chega sozinho.
challenge icon

Para ir além

As posições são números inteiros menores que target. Você consegue contar as frotas em tempo O(n + target), sem uma ordenação por comparação?

Redefinir código
def carFleet(target, position, speed):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

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

Saída Esperada

2