Menu
CoddyTech

Activity Selection Problem

Aktivität i läuft von Zeitpunkt start[i] bis Zeitpunkt finish[i]. Eine Person führt jeweils eine Aktivität aus, und die nächste Aktivität muss strikt nach dem Ende der vorherigen beginnen: Eine Aktivität, die genau zu dem Zeitpunkt beginnt, zu dem eine andere endet, kann nicht auf sie folgen.

Gib die größtmögliche Anzahl an Aktivitäten zurück, die eine Person ausführen kann.

Funktion

maxActivities(start: integer-array, finish: integer-array) → integer
startinteger-array
die Startzeit jeder Aktivität
finishinteger-array
die Endzeit jeder Aktivität; finish[i] gehört zu start[i]
Gibt zurückinteger
die meisten Aktivitäten, die eine Person nacheinander ausführen kann

Einschränkungen

  • 1 ≤ start.length == finish.length ≤ 5000
  • 0 ≤ start[i] ≤ finish[i] ≤ 105
  • Eine Aktivität kann zur selben Zeit beginnen und enden. Die Arrays sind nicht sortiert.

Beispiele

Eingabe
start = [10, 12, 20, 14, 25, 21]finish = [13, 16, 24, 19, 30, 22]
Ausgabe
4
Erklärung
Die Bereiche 10 bis 13, 14 bis 19, 21 bis 22 und 25 bis 30 ergeben 4. Fünf ist unmöglich: 10 bis 13 überschneidet sich mit 12 bis 16 und 21 bis 22 mit 20 bis 24.
challenge icon

Weiterführende Frage

Zwei Personen arbeiten jetzt parallel und erledigen jeweils eine Aktivität nach der anderen. Wie viele Aktivitäten können sie gemeinsam erledigen, und welche Person sollte welche übernehmen?

Code zurücksetzen
def maxActivities(start, finish):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

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

Erwartete Ausgabe

4