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