跳到主要内容

826.安排工作以达到最大收益

链接:826.安排工作以达到最大收益
难度:Medium
标签:贪心、数组、双指针、二分查找、排序
简介:返回 在把工人分配到工作岗位后,我们所能获得的最大利润 。

题解 1 - python

  • 编辑时间:2024-05-17
  • 执行用时:75ms
  • 内存消耗:18.77MB
  • 编程语言:python
  • 解法介绍:排序后获取当前难度下最大的收益。
class Solution:
def maxProfitAssignment(self, difficulty: List[int], profit: List[int], worker: List[int]) -> int:
diff_list = sorted([i for i in range(len(difficulty))], key = lambda i: -difficulty[i])
res = 0
cur_profit = 0
for i in sorted([i for i in range(len(worker))], key = lambda i: worker[i]):
while diff_list and difficulty[diff_list[-1]] <= worker[i]:
cur_profit = max(cur_profit, profit[diff_list.pop()])
res += cur_profit
return res