LeetCode826 安排工作以達到最大收益

2021-10-04 18:40:14 字數 893 閱讀 6687

原題鏈結

有一些工作: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個工人都嘗試...