Class Solution


  • public class Solution
    extends Object
    826 - Most Profit Assigning Work.

    Medium

    You have n jobs and m workers. You are given three arrays: difficulty, profit, and worker where:

    • difficulty[i] and profit[i] are the difficulty and the profit of the ith job, and
    • worker[j] is the ability of jth worker (i.e., the jth worker can only complete a job with difficulty at most worker[j]).

    Every worker can be assigned at most one job , but one job can be completed multiple times.

    • For example, if three workers attempt the same job that pays $1, then the total profit will be $3. If a worker cannot complete any job, their profit is $0.

    Return the maximum profit we can achieve after assigning the workers to the jobs.

    Example 1:

    Input: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]

    Output: 100

    Explanation: Workers are assigned jobs of difficulty [4,4,6,6] and they get a profit of [20,20,30,30] separately.

    Example 2:

    Input: difficulty = [85,47,57], profit = [24,66,99], worker = [40,25,25]

    Output: 0

    Constraints:

    • n == difficulty.length
    • n == profit.length
    • m == worker.length
    • 1 <= n, m <= 104
    • 1 <= difficulty[i], profit[i], worker[i] <= 105
    • Constructor Detail

      • Solution

        public Solution()
    • Method Detail

      • maxProfitAssignment

        public int maxProfitAssignment​(int[] difficulty,
                                       int[] profit,
                                       int[] worker)