劍指Offer 減繩子

2021-10-14 23:05:31 字數 1027 閱讀 4451

/**

* 減繩子

* * 給你一根長度為n的繩子,請把繩子剪成整數長的m段(m、n都是整數,n>1並且m>1,m<=n),每段繩子的長度記為k[1],...,k[m]。

* 請問k[1]x...xk[m]可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18。

* * 輸入描述:輸入乙個數n,意義見題面。(2 <= n <= 60)

* 返回值描述:輸出答案

* * 示例1:

* 輸入:8

* 輸出:18

*/public class jz067cutrope

if (target == 2)

if (target == 3)

int timesof3 = target / 3;

if (target - timesof3 * 3 == 1)

int timesof2 = (target - timesof3 * 3) / 2;

return (int) (math.pow(3, timesof3)) * (int) (math.pow(2, timesof2));

}/**

* 動態規劃

* @param target

* @return

*/public int cutrope2(int target)

if (target == 2)

if (target == 3)

int products = new int[target + 1];

products[0] = 0;

products[1] = 1;

products[2] = 2;

products[3] = 3;

int max = 0;

for (int i = 4; i <= target; i++)

}products[i] = max;

}return max;

}}

劍指offer014減繩子

給你一根長度為 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。示例 1 輸入 2...

劍指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的三段,此 時得到最大的乘積18。思路 動態規劃 任何動態規劃都是由遞迴演...

《劍指Offer》剪繩子

給你一根長度為n的繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 xk 1 x.xk m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18 乘法計算,除了一以外,越多的數相...