Menu
CoddyTech

Car Fleet

Mobil melaju di jalan satu lajur menuju mil target. Mobil i mulai di mil position[i] dan melaju dengan kecepatan speed[i] mil per jam. Mobil tidak dapat mendahului mobil lain: mobil yang menyusul mobil yang lebih lambat akan tetap tepat di belakangnya, dan setelah itu keduanya bergerak bersama dengan kecepatan yang lebih lambat sebagai satu armada.

Satu mobil juga merupakan armada, dan mobil yang tepat mencapai armada di tujuan akan bergabung dengannya. Kembalikan jumlah armada yang tiba di tujuan.

Fungsi

carFleet(target: integer, position: integer-array, speed: integer-array) → integer
targetinteger
jarak satu mil yang dituju setiap mobil
positioninteger-array
mile awal setiap mobil
speedinteger-array
kecepatan setiap mobil, dalam mil per jam
Mengembalikaninteger
jumlah armada yang mencapai tujuan

Batasan

  • n == position.length == speed.length
  • 1 ≤ n ≤ 104
  • 1 ≤ target ≤ 106
  • 0 ≤ position[i] < target
  • 1 ≤ speed[i] ≤ 106
  • Semua posisi berbeda.

Contoh

Input
target = 20position = [14, 2, 8, 17, 0]speed = [3, 6, 4, 1, 2]
Output
2
Penjelasan
Sendirian, mobil-mobil di mil 17, 14, 8, dan 2 membutuhkan waktu 3, 2, 3, dan 3 jam, jadi mobil di mil 14 menyusul mobil di mil 17, sedangkan dua mobil lainnya mencapai mereka di mil 20. Mobil di mil 0 membutuhkan waktu 10 jam dan tiba sendirian.
challenge icon

Pertanyaan lanjutan

Posisinya adalah bilangan bulat di bawah target. Bisakah kamu menghitung armada dalam waktu O(n + target), tanpa pengurutan perbandingan?

Reset kode
def carFleet(target, position, speed):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

2