826. Die meiste gewinnbringende Arbeit
Mittel
Sie haben n Jobs und m Arbeiter. Sie erhalten drei Arrays: Schwierigkeit, Gewinn und Arbeiter, wobei:
Jedem Arbeitnehmer kann höchstens ein Auftrag zugewiesen werden, ein Auftrag kann jedoch mehrmals erledigt werden.
Geben Sie den maximalen Gewinn zurück, den wir nach der Zuweisung der Arbeitskräfte zu den Jobs erzielen können.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Lösung:
class Solution { /** * @param Integer[] $difficulty * @param Integer[] $profit * @param Integer[] $worker * @return Integer */ function maxProfitAssignment($difficulty, $profit, $worker) { $ans = 0; $jobs = array(); for ($i = 0; $i < count($difficulty); ++$i) { $jobs[] = array($difficulty[$i], $profit[$i]); } sort($jobs); sort($worker); $i = 0; $maxProfit = 0; foreach ($worker as $w) { for (; $i < count($jobs) && $w >= $jobs[$i][0]; ++$i) { $maxProfit = max($maxProfit, $jobs[$i][1]); } $ans += $maxProfit; } return $ans; } }Kontaktlinks
Das obige ist der detaillierte Inhalt von. Die meisten gewinnorientierten Arbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!