[dp解題] 剪繩子
【問題】給定一根長度為
n的繩子,請把繩子剪成m段(
m、n都是整數,
n>1
並且m>1
),每段繩子的長度記為
k[0],k[1],…,k[m]
。請問k[0]* k[1] * … *k[m]
可能的最大乘積是多少? 示例
1: 輸入:
8 輸出:
18
解釋:當繩子的長度是
8時,可以把它剪成長度分別為2、
3、3的三段,此時得到的最大乘積是18。
[演算法分析]
[演算法設計]
package com.bean.algorithmbasic;
public class cutropedemo
if (length == 2)
if (length == 3)
int max = 0;
int res = new int[length];
res[0] = 2;
res[1] = 3;
for (int i = 4; i <= length; i++) }}
max = res[length-2] ;
return max;
}public static void main(string args)
}
輸出結果:
result = 36
劍指Offer 剪繩子 和剪繩子
劍指offer 剪繩子 題目描述 給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段 m n都是整數,n 1並且m 1 每段繩子的長度記為 k 0 k 1 k m 請問 k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的...
剪繩子問題
給你一根長度為 n 的繩子,請把繩子剪成整數長度的 m 段 m n都是整數,n 1並且m 1 每段繩子的長度記為 k 0 k 1 k m 請問 k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。首先是貪婪演算法 ...
剪繩子 演算法 424,劍指 Offer 剪繩子
給你一根長度為 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。示例 1 ...