當前位置:
首頁 >
LeetCode 1335. 工作计划的最低难度(DP)
發布時間:2024/7/5
28
豆豆
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1335. 工作计划的最低难度(DP)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
你需要制定一份 d 天的工作計劃表。工作之間存在依賴,要想執行第 i 項工作,你必須完成全部 j 項工作( 0 <= j < i)。
你每天 至少 需要完成一項任務。工作計劃的總難度是這 d 天每一天的難度之和,而一天的工作難度是當天應該完成工作的最大難度。
給你一個整數數組 jobDifficulty 和一個整數 d,分別代表工作難度和需要計劃的天數。第 i 項工作的難度是 jobDifficulty[i]。
返回整個工作計劃的 最小難度 。如果無法制定工作計劃,則返回 -1 。
示例 1: 輸入:jobDifficulty = [6,5,4,3,2,1], d = 2 輸出:7 解釋:第一天,您可以完成前 5 項工作,總難度 = 6. 第二天,您可以完成最后一項工作,總難度 = 1. 計劃表的難度 = 6 + 1 = 7 示例 2: 輸入:jobDifficulty = [9,9,9], d = 4 輸出:-1 解釋:就算你每天完成一項工作,仍然有一天是空閑的, 你無法制定一份能夠滿足既定工作時間的計劃表。示例 3: 輸入:jobDifficulty = [1,1,1], d = 3 輸出:3 解釋:工作計劃為每天一項工作,總難度為 3 。示例 4: 輸入:jobDifficulty = [7,1,7,1,7,1], d = 3 輸出:15示例 5: 輸入:jobDifficulty = [11,111,22,222,33,333,44,444], d = 6 輸出:843提示: 1 <= jobDifficulty.length <= 300 0 <= jobDifficulty[i] <= 1000 1 <= d <= 10來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-difficulty-of-a-job-schedule
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. DP解題
class Solution { public:int minDifficulty(vector<int>& jobDifficulty, int d) {int n = jobDifficulty.size(), i, j, k, MAX = 0;if(n < d)return -1;vector<vector<int>> dp(d,vector<int>(n, INT_MAX));for(i = 0; i <= n-d; ++i){MAX = max(MAX, jobDifficulty[i]);dp[0][i] = MAX;//初始化第一天的工作難度的幾種可能}for(i = 1; i < d; ++i)//填表,剩余的幾天{ //每次前一天至少完成一項工作,還要保證后面幾天至少每天有1項工作要做for(j = i; j <= n-d+i; ++j){ MAX = 0;for(k = j; k <= n-d+i; ++k){ //對前一天和當前天的所有組合取min難度MAX = max(MAX, jobDifficulty[k]);dp[i][k] = min(dp[i][k], MAX+dp[i-1][j-1]);}}}return dp[d-1][n-1];} }; 示例 5: 輸入:jobDifficulty = [11,111,22,222,33,333,44,444], d = 6 輸出:843填寫dp狀態表過程:
| 11 | 111 | 111 | |||||
| 122 | 122、133 | 233、333、333 | |||||
| 144 | 344、344 | 344、344、266 | |||||
| 366 | 366、377 | 477、677、599 | |||||
| 399 | 699、699 | 699、699、521 | |||||
| 732 | 732、743 | 843、1143、965 |
倒推回去,應該這么分成6天: 11 | 111 | 22 | 222 | 33 | 333、44、444
總的難度最小:?11 + 111 + 22 + 222 + 33 + 444 =? 843
總結
以上是生活随笔為你收集整理的LeetCode 1335. 工作计划的最低难度(DP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指Offer - 面试题13. 机器人
- 下一篇: LeetCode 40. 组合总和 II