Description du titre:
Donnez-vous un tableau d' événements , où les événements [i] = [startDayi, endDayi] , ce qui signifie que la réunion i commence à startDayi et se termine à endDayi .
Vous pouvez participer à la réunion i n'importe quel jour d satisfaisant startDayi <= d <= endDayi .
Notez que vous ne pouvez participer qu'à une seule réunion par jour.
Veuillez retourner le nombre maximum de réunions auxquelles vous pouvez assister.
Entrez:
Entrée: événements = [[1,2], [2,3], [3,4]]
Sortie: 3
Explication: Vous pouvez participer aux trois réunions.
Un plan pour organiser une réunion est illustré ci-dessus.
Participez à la première réunion le premier jour.
Participez à la deuxième réunion le deuxième jour.
Participez à la troisième réunion le troisième jour.
Exemple 1:
Entrée: événements = [[1,2], [2,3], [3,4], [1,2]]
Sortie : 4
Idées:
Concevez des idées gourmandes, organisez toutes les données selon endDay de petite à grande, si la finDay est la même, selon startDay de petite à grande,
Créez ensuite un tableau dynamique de jours pour enregistrer si vous avez participé à la réunion un certain jour,
Parcourez toutes les réunions et déterminez le premier jour où chaque réunion peut être planifiée
Code:
classe Solution: DEF maxevents (auto, Événements: Liste [Liste [int]]) -> int: Events = le tri (événements, Key = lambda X: (X, X [0]) [1].) # par la dernière fois , La première fois que deux éléments sont disposés arr2 = [Faux] nombre = 0 pour i dans la plage (len (événements)): pour j dans la plage (événements [i] [0], événements [i] [1] +1 ) : tandis que len (arr2) <= j: arr2.append (False) #Si le tableau de jours n'est pas assez grand, augmentez dynamiquement la taille du tableau de jours si arr2 [j] == False: #Déterminer si la conférence j-jour a été prévu arr2 [j] = Vrai COUNT + 1 = PAUSE retour COUNT
Résultat du jugement: