Menu
CoddyTech

Activity Selection Problem

FacileGloutonTripython iconjava iconcpp iconc iconjs icon+10

L’activité i se déroule de l’heure start[i] à l’heure finish[i]. Une personne ne fait qu’une activité à la fois, et l’activité suivante doit commencer strictement après la fin de la précédente : une activité qui commence exactement au moment où une autre se termine ne peut pas la suivre.

Renvoie le nombre maximal d’activités qu’une personne peut faire.

Fonction

maxActivities(start: integer-array, finish: integer-array) → integer
startinteger-array
l'heure de début de chaque activité
finishinteger-array
l'heure de fin de chaque activité ; finish[i] correspond à start[i]
Renvoieinteger
le plus grand nombre d’activités qu’une personne peut faire, l’une après l’autre

Contraintes

  • 1 ≤ start.length == finish.length ≤ 5000
  • 0 ≤ start[i] ≤ finish[i] ≤ 105
  • Une activité peut commencer et se terminer en même temps. Les tableaux ne sont pas triés.

Exemples

Entrée
start = [10, 12, 20, 14, 25, 21]finish = [13, 16, 24, 19, 30, 22]
Sortie
4
Explication
Faire 10 à 13, 14 à 19, 21 à 22 et 25 à 30 donne 4. Cinq est impossible : 10 à 13 entre en conflit avec 12 à 16, et 21 à 22 avec 20 à 24.
challenge icon

Pour aller plus loin

Deux personnes travaillent maintenant en parallèle, chacune en réalisant une activité à la fois. Combien d’activités peuvent-elles réaliser ensemble, et laquelle chacune devrait-elle prendre en charge ?

Réinitialiser le code
def maxActivities(start, finish):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

4