826. Kerja Memberi Keuntungan Paling Banyak
Sederhana
Anda mempunyai n pekerjaan dan m pekerja. Anda diberi tiga tatasusunan: kesukaran, keuntungan dan pekerja di mana:
Setiap pekerja boleh diberikan paling banyak satu kerja, tetapi satu kerja boleh disiapkan beberapa kali.
Pulangan keuntungan maksimum yang boleh kami capai selepas menugaskan pekerja kepada pekerjaan.
Contoh 1:
Contoh 2:
Kekangan:
Penyelesaian:
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; } }Pautan Kenalan
Atas ialah kandungan terperinci . Kerja Penyerahan Keuntungan Paling Banyak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!