Most Profit Assigning Work

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 i^th job.
  • worker[j] is the ability of the j^th worker, meaning the j^th 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
Inputdifficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]
Output100
Workers are assigned jobs of difficulty [4, 4, 6, 6] and they get a profit of [20, 20, 30, 30] separately.
Example 2
Inputdifficulty = [85,47,57], profit = [24,66,99], worker = [40,25,25]
Output0
No worker can complete any available job, so the total profit is 0.

Constraints

  • n == difficulty.length
  • n == profit.length
  • m == worker.length
  • 1 <= n, m <= 10^4
  • 1 <= difficulty[i], profit[i], worker[i] <= 10^5

Asked at 6 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate