問題描述:
給你一根長度為 n 繩子,請把繩子剪成 m 段(m、n 都是整數,2≤n≤58 並且 m≥2)。每段的繩子的長度記為k[0]、k[1]、……、k[m]。k[0]k[1] … k[m] 可能的最大乘積是多少?例如當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到最大的乘積18。
樣例
結論性知識,乙個數可以分解為只包含2和3的組合,其中2的個數最多是兩個,其餘的均為3.當然 n<=3的時候例外,如果越界的話需要進行 % 操作。
class
solution
};
擴充套件:剪繩子ⅱ
給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段(m、n都是整數,n>1並且m>1),每段繩子的長度記為 k[0],k[1]…k[m - 1] 。請問 k[0]k[1]…*k[m - 1] 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
class
solution
return res;}}
;
class
solution
};
LeetCode 數學 剪繩子
給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段 m n都是整數,n 1並且m 1 每段繩子的長度記為 k 0 k 1 k m 1 請問 k 0 k 1 k m 1 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。示例 輸入...
JZ 14 I 剪繩子(數學 動態規劃)
參考1 參考2用乙個陣列 dp 記錄從 0 到 n 長度的繩子剪掉後的最大乘積,即 dp i dp i dp i 表示長度為 i 的繩子剪成 m 段後的最大乘積,初始化 dp 2 1 dp 2 1 dp 2 1,最終返回dp n dp n dp n 陣列大小需要設為n 1 n 1n 1 假設已經減掉...
動態規劃 數學分析 剪繩子問題1
當n 2,1 1 當n 3,2 1 2 times 1 當n 4,2 times 2 3 times 1 當n 5,3 times 2 4 times 1 當n 6,3 times 3 4 times 2 綜上演算法流程 當 n leq 3n 3 時,按照貪心規則應直接保留原數字,但由於題目要求必須...