Menu
CoddyTech

Activity Selection Problem

Aktivitas i berlangsung dari waktu start[i] hingga waktu finish[i]. Satu orang melakukan satu aktivitas pada satu waktu, dan aktivitas berikutnya harus dimulai setelah aktivitas sebelumnya selesai: aktivitas yang dimulai tepat saat aktivitas lain selesai tidak dapat dilakukan setelahnya.

Kembalikan jumlah aktivitas terbanyak yang dapat dilakukan satu orang.

Fungsi

maxActivities(start: integer-array, finish: integer-array) → integer
startinteger-array
waktu mulai setiap aktivitas
finishinteger-array
waktu selesai setiap aktivitas; finish[i] termasuk dalam start[i]
Mengembalikaninteger
jumlah aktivitas terbanyak yang dapat dilakukan seseorang, satu demi satu

Batasan

  • 1 ≤ start.length == finish.length ≤ 5000
  • 0 ≤ start[i] ≤ finish[i] ≤ 105
  • Sebuah aktivitas dapat dimulai dan selesai pada waktu yang sama. Array tidak diurutkan.

Contoh

Input
start = [10, 12, 20, 14, 25, 21]finish = [13, 16, 24, 19, 30, 22]
Output
4
Penjelasan
Melakukan 10 sampai 13, 14 sampai 19, 21 sampai 22, dan 25 sampai 30 menghasilkan 4. Lima tidak mungkin: 10 sampai 13 bertabrakan dengan 12 sampai 16, dan 21 sampai 22 bertabrakan dengan 20 sampai 24.
challenge icon

Pertanyaan lanjutan

Dua orang kini bekerja secara bersamaan, masing-masing mengerjakan satu aktivitas pada satu waktu. Berapa banyak aktivitas yang dapat mereka lakukan bersama, dan siapa yang sebaiknya mengerjakan masing-masing aktivitas?

Reset kode
def maxActivities(start, finish):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

start = [10, 12, 20, 14, 25, 21]
finish = [13, 16, 24, 19, 30, 22]

Output yang diharapkan

4