freedom.9
Senior Member
Python:
class Solution:
def maxProfitAssignment(self, difficulty: List[int], profit: List[int], worker: List[int]) -> int:
worker, jobs = sorted(worker), sorted(zip(difficulty, profit))
n, profits, maxSofar, current = len(jobs), 0, 0, 0
for i in range(len(worker)):
while current < n and worker[i] >= jobs[current][0]:
maxSofar = max(maxSofar, jobs[current][1])
current += 1
profits += maxSofar
return profits
Last edited: