日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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狀態表過程:

11111222223333344444
11111111
122122、133233、333、333
144344、344344、344、266
366366、377477、677、599
399699、699699、699、521
732732、743 843、1143、965

倒推回去,應該這么分成6天: 11 | 111 | 22 | 222 | 33 | 333、44、444
總的難度最小:?11 + 111 + 22 + 222 + 33 + 444 =? 843

總結

以上是生活随笔為你收集整理的LeetCode 1335. 工作计划的最低难度(DP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。