最大獲利的工作安排 Most Profit Assigning Work_Leetcode #826 Greedy策略

更新 發佈閱讀 4 分鐘

題目敘述 Most Profit Assigning Work

公司裡有n位員工,m件任務。

每位員工的能力記錄在worker陣列。

每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。

不同的員工可以做同樣的任務。

請問怎麼分配任務可以得到整體最大獲利?


測試範例

Example 1:

Input: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]
Output: 100
Explanation: Workers are assigned jobs of difficulty [4,4,6,6] and they get a profit of [20,20,30,30] separately.

Example 2:

Input: difficulty = [85,47,57], profit = [24,66,99], worker = [40,25,25]
Output: 0

難度都超過員工能力值,沒有合適的任務。​ 

約束條件

Constraints:

  • n == difficulty.length
  • n == profit.length

總共有n個任務

  • m == worker.length

總共有m位員工。

  • 1 <= n, m <= 10^4

參數n和m都介於1~一萬之間。

  • 1 <= difficulty[i], profit[i], worker[i] <= 10^5

任務難度、任務獲利、員工能力都介於1~十萬之間。


觀察 人盡其才 Greedy策略

最大獲利 直覺想到的就是盡可能挑能力範圍內,獲利大的任務來做。

先針對每個任務依據難度從小到大排序。

每位員工也依據能力從小到大排序。


接著,針對每位員工,在他的能力範圍內,挑選獲利最大的任務來做。

這邊的思想就是(Greedy策略)局部最佳化,進一步帶來整體的最佳化


演算法 人盡其才 Greedy策略

承接觀察點的思考。

每個任務依據難度從小到大排序。

每位員工也依據能力從小到大排序。

針對每位員工,在他的能力範圍內,挑選獲利最大的任務來做。


程式碼 人盡其才 Greedy策略

class Solution:
def maxProfitAssignment(self, difficulty : List[int], profit: List[int], worker: List[int]) -> int:

# sort jobs by (difficulty, profit) pair
jobs = sorted(zip(difficulty , profit))

# sort worker by ability from small to large
worker.sort()

total_profit, job_index, max_profit = 0,0,0

# Each worker choose the job which has most profit and within ability.
for ability in worker:

while job_index < len(jobs) and jobs[job_index][0] <= ability:
max_profit = max(max_profit, jobs[job_index][1])
job_index+=1

total_profit += max_profit

return total_profit

複雜度分析

時間複雜度: O( n log n + m log m)

排序任務耗費O( n log n)

排序員工耗費O( m log m)

分配任務耗費O( m + n)

空間複雜度: O(n)

重新產生一個新的任務的(難度, 獲利)陣列,所需空間為O(n)


關鍵知識點 Greedy策略

針對每位員工,在他的能力範圍內,挑選獲利最大的任務來做

這邊的思想就是(Greedy策略)局部最佳化,進一步帶來整體的最佳化


Reference

[1] Most Profit Assigning Work - LeetCode

留言
avatar-img
小松鼠的演算法樂園
99會員
428內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
2024/10/06
題目敘述 Rank Transform of an Array 給定一個陣列arr,請根據數字的大小給予序號,序號值介於1~len( set(arr) )之間。 最大的數字給予最大的序號。 次大的數字給予次大的序號。 ...依此類推 最小的數字給予最小的序號1。
Thumbnail
2024/10/06
題目敘述 Rank Transform of an Array 給定一個陣列arr,請根據數字的大小給予序號,序號值介於1~len( set(arr) )之間。 最大的數字給予最大的序號。 次大的數字給予次大的序號。 ...依此類推 最小的數字給予最小的序號1。
Thumbnail
2024/10/01
題目敘述 Check If Array Pairs Are Divisible by k 給定一個長度為偶數的整數陣列arr,和一個整數k 。 我們想把陣列元素兩兩一組組成pair,使得每個pair的總和可以被k整除。 如果做得到,返回True。 如果不行,返回False。
Thumbnail
2024/10/01
題目敘述 Check If Array Pairs Are Divisible by k 給定一個長度為偶數的整數陣列arr,和一個整數k 。 我們想把陣列元素兩兩一組組成pair,使得每個pair的總和可以被k整除。 如果做得到,返回True。 如果不行,返回False。
Thumbnail
2024/09/29
My Calendar II 給定一個行事曆的class定義和行程安排的介面。 請完成下列function 1.建構子MyCalendarTwo() 2.boolean book(int start, int end) 在行事曆加入一項新行程,起始時間為start, 結束時間為end。
Thumbnail
2024/09/29
My Calendar II 給定一個行事曆的class定義和行程安排的介面。 請完成下列function 1.建構子MyCalendarTwo() 2.boolean book(int start, int end) 在行事曆加入一項新行程,起始時間為start, 結束時間為end。
Thumbnail
看更多
你可能也想看
Thumbnail
✨閱讀後你將學會: 識別並專注關鍵任務:學會辨識出哪20%的工作努力帶來80%的結果。 優化工作流程:理解如何優化或委派80%的低效工作,以提升整體工作效率。 持續的自我評估:定期檢視與調整工作策略,確保持續聚焦於高價值任務。
Thumbnail
✨閱讀後你將學會: 識別並專注關鍵任務:學會辨識出哪20%的工作努力帶來80%的結果。 優化工作流程:理解如何優化或委派80%的低效工作,以提升整體工作效率。 持續的自我評估:定期檢視與調整工作策略,確保持續聚焦於高價值任務。
Thumbnail
題目敘述 Most Profit Assigning Work 公司裡有n位員工,m件任務。 每位員工的能力記錄在worker陣列。 每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。 不同的員工可以做同樣的任務。 請問怎麼分配任務可以得到整體最大獲利?
Thumbnail
題目敘述 Most Profit Assigning Work 公司裡有n位員工,m件任務。 每位員工的能力記錄在worker陣列。 每個任務對應的能力要求和獲利紀錄在difficulty 和profit陣列。 不同的員工可以做同樣的任務。 請問怎麼分配任務可以得到整體最大獲利?
Thumbnail
分配工作是管理者的基本技能之一,也是提升管理效率的重要途徑。本篇文章介紹了有效佈置工作的6個步驟,此外,也解釋定期對下屬的工作進行獎懲和檢討,可以進一步提高工作效率和品質的原因。
Thumbnail
分配工作是管理者的基本技能之一,也是提升管理效率的重要途徑。本篇文章介紹了有效佈置工作的6個步驟,此外,也解釋定期對下屬的工作進行獎懲和檢討,可以進一步提高工作效率和品質的原因。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
不要躊躇遲疑,不要搖擺不定。讓自己成為一個意志堅定處事果斷,具備令部屬信服權威的領導者吧!
Thumbnail
不要躊躇遲疑,不要搖擺不定。讓自己成為一個意志堅定處事果斷,具備令部屬信服權威的領導者吧!
Thumbnail
為活動安排適合的工作分組,不僅可以幫助活動流暢,往更遠一點看,能幫助大家提升其專業分工上能力,例如一開始只能當一位接待員,但經驗累積後,主管就可以放手給其承擔各大領導角色。這樣的思維可能顛覆傳統職場上對下關係,但對一個組織長遠發展跟經驗傳承是好的。本文以一場200人研討會規格,試著列出所需人力分組。
Thumbnail
為活動安排適合的工作分組,不僅可以幫助活動流暢,往更遠一點看,能幫助大家提升其專業分工上能力,例如一開始只能當一位接待員,但經驗累積後,主管就可以放手給其承擔各大領導角色。這樣的思維可能顛覆傳統職場上對下關係,但對一個組織長遠發展跟經驗傳承是好的。本文以一場200人研討會規格,試著列出所需人力分組。
Thumbnail
企業面對大專案時,將其分解成可執行的小任務,有助於實現目標。以提升銷售額為例,拆解為四個要素,並提供增加流量、轉換率、客單價和回購率的策略。另外,還必須設計可量化的指標及追蹤回饋。這些建議對於創作型工作和知識型工作者來說,同樣可以利用該策略來提高工作效率。
Thumbnail
企業面對大專案時,將其分解成可執行的小任務,有助於實現目標。以提升銷售額為例,拆解為四個要素,並提供增加流量、轉換率、客單價和回購率的策略。另外,還必須設計可量化的指標及追蹤回饋。這些建議對於創作型工作和知識型工作者來說,同樣可以利用該策略來提高工作效率。
Thumbnail
會議,是許多中小企業最喜歡做的事情。 曾經看過一個團隊一周最少開7-10個會議,有時會更多,最後的結果大都議而不決,不斷地探討特殊個案的解方,或是調整企畫內容去符合某些小眾的需求。  換個角度來看,這些在職場的日子上,我們有多少企劃、多少的專案提報,總是過不了上面主管、頂層老闆的首肯。
Thumbnail
會議,是許多中小企業最喜歡做的事情。 曾經看過一個團隊一周最少開7-10個會議,有時會更多,最後的結果大都議而不決,不斷地探討特殊個案的解方,或是調整企畫內容去符合某些小眾的需求。  換個角度來看,這些在職場的日子上,我們有多少企劃、多少的專案提報,總是過不了上面主管、頂層老闆的首肯。
Thumbnail
當你在帶領團隊,明明每個人都很忙碌,成效卻不如預期怎麼辦?看看這位鋼鐵公司總裁的真實經歷,每天透過這個策略達到事半功倍的效果。
Thumbnail
當你在帶領團隊,明明每個人都很忙碌,成效卻不如預期怎麼辦?看看這位鋼鐵公司總裁的真實經歷,每天透過這個策略達到事半功倍的效果。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News