題意:
給出整數陣列a
,將該陣列分隔為長度最多為k
的幾個(連續)子陣列。分隔完成後,每個子陣列的中的值都會變為該子陣列中的最大值。
返回給定陣列完成分隔後的最大和。
示例:
輸入:a = [1,15,7,9,2,5,10], k = 3
輸出:84
解釋:a 變為 [15,15,15,9,10,10,10]
思路:簡單dp。dp[i]表示分割完前i個數,最大值是多少。
j表示當前段的長度[1,k]。
假設我們知道[i-j,i]這一段的最大值curmax,那麼dp[i]可以從dp[i-j]推過來。
dp[i] = max(dp[i],dp[i-j]+curmax*j);
curmax又可以通過遍歷j的時候來更新。
1view codeclass
solution 12}
13return
dp[l];14}
15 };
leetcode 1043 分隔陣列以得到最大和
給出整數陣列 a,將該陣列分隔為長度最多為 k 的幾個 連續 子陣列。分隔完成後,每個子陣列中的值都會變為該子陣列中的最大值。返回給定陣列完成分隔後的最大和。示例 輸入 a 1,15,7,9,2,5,10 k 3 輸出 84 解釋 a 變為 15,15,15,9,10,10,10 這個問題最直觀的想...
LeetCode1556 千位分隔數
一.題目 題目給你乙個整數 n,請你每隔三位新增點 即 符號 作為千位分隔符,並將結果以字串格式返回。示例 二.方法一 反轉字串 解題思路 先將字串反轉,然後每隔3個數字新增乙個 再將最終的字串反轉回來,並刪掉最後多餘的 即可 之所以最開始要反轉字串,是因為反轉後就不用考慮最前面是否滿足3位的情況 ...
Leetcode86 分隔鍊錶
題目描述 給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5演算法描述 此題有兩種解法,第一種就是將所有小於給定值的節點取...