原題鏈結
有一些工作:difficulty[i] 表示第i個工作的難度,profit[i]表示第i個工作的收益。
現在我們有一些工人。worker[i]是第i個工人的能力,即該工人只能完成難度小於等於worker[i]的工作。
每乙個工人都最多只能安排乙個工作,但是乙個工作可以完成多次。
舉個例子,如果3個工人都嘗試完成乙份報酬為1的同樣工作,那麼總收益為 $3。如果乙個工人不能完成任何工作,他的收益為 $0 。
我們能得到的最大收益是多少?
示例:輸入: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]
輸出: 100
解釋: 工人被分配的工作難度是 [4,4,6,6] ,分別獲得 [20,20,30,30] 的收益。
class
solution
(object):
defmaxprofitassignment
(self, difficulty, profit, worker)
: jobs =
zip(difficulty,profit)
jobs.sort(
) ans = i = best =
0for skill in
sorted
(worker)
:while i <
len(jobs)
and skill >= jobs[i][0
]:best =
max(best,jobs[i][1
])i +=
1 ans += best
return ans
leetcode826 安排工作以達到最大收益
有一些工作 difficulty i 表示第i個工作的難度,profit i 表示第i個工作的收益。現在我們有一些工人。worker i 是第i個工人的能力,即該工人只能完成難度小於等於worker i 的工作。每乙個工人都最多只能安排乙個工作,但是乙個工作可以完成多次。舉個例子,如果3個工人都嘗試...
Leetcode 826 安排工作以達到最大利益
有一些工作 difficulty i 表示第i個工作的難度,profit i 表示第i個工作的收益。現在我們有一些工人。worker i 是第i個工人的能力,即該工人只能完成難度小於等於worker i 的工作。每乙個工人都最多只能安排乙個工作,但是乙個工作可以完成多次。舉個例子,如果3個工人都嘗試...
826 安排工作以達到最大收益
有一些工作 difficulty i 表示第i個工作的難度,profit i 表示第i個工作的收益。現在我們有一些工人。worker i 是第i個工人的能力,即該工人只能完成難度小於等於worker i 的工作。每乙個工人都最多只能安排乙個工作,但是乙個工作可以完成多次。舉個例子,如果3個工人都嘗試...