826。最も利益をもたらす仕事
中
あなたには n 個の仕事と m 個の労働者がいます。難易度、利益、労働者の 3 つの配列が与えられます。
すべてのワーカーには最大 1 つのジョブを割り当てることができますが、1 つのジョブは複数回完了することができます。
労働者をジョブに割り当てた後に達成できる最大利益を返します。
例 1:
例 2:
制約:
解決策:
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; } }
連絡先リンク
以上が。最も利益を与える仕事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。