Menu
CoddyTech

Activity Selection Problem

L'attività i si svolge dal momento start[i] al momento finish[i]. Una persona svolge un'attività alla volta e l'attività successiva deve iniziare strettamente dopo la fine della precedente: un'attività che inizia esattamente nel momento in cui un'altra termina non può seguirla.

Restituisci il numero massimo di attività che una persona può svolgere.

Funzione

maxActivities(start: integer-array, finish: integer-array) → integer
startinteger-array
l'ora di inizio di ogni attività
finishinteger-array
l'ora di fine di ogni attività; finish[i] appartiene a start[i]
Restituisceinteger
il maggior numero di attività che una persona può svolgere, una dopo l'altra

Vincoli

  • 1 ≤ start.length == finish.length ≤ 5000
  • 0 ≤ start[i] ≤ finish[i] ≤ 105
  • Un’attività può iniziare e terminare allo stesso momento. Gli array non sono ordinati.

Esempi

Input
start = [10, 12, 20, 14, 25, 21]finish = [13, 16, 24, 19, 30, 22]
Output
4
Spiegazione
Eseguire da 10 a 13, da 14 a 19, da 21 a 22 e da 25 a 30 dà 4. Cinque è impossibile: da 10 a 13 entra in conflitto con da 12 a 16, e da 21 a 22 con da 20 a 24.
challenge icon

Per approfondire

Ora due persone lavorano in parallelo, svolgendo ciascuna un’attività alla volta. Quante attività possono svolgere insieme e quale persona dovrebbe occuparsi di ciascuna?

Ripristina il codice
def maxActivities(start, finish):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

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

Output atteso

4