面試題14 剪繩子

2021-09-22 18:16:20 字數 684 閱讀 4011

長度為n的繩子,剪為m段,求最大乘積

思路:

第一刀後:f(n) = f(i) * f(n-i)

從下到上計算,4可被分為兩個2段;5可分為乙個2乙個3

int maxproductaftercutting(int length)

; int max = 0;

product[1] = 1;

product[2] = 2;

product[3] = 3;

if(length < =3) return product[length-1];

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

product[i] = max;

} max = product[length];

delete product;

return max;

}

###貪婪

貪婪策略:n>=5,盡可能剪3

int maxproductaftercutting(int length)

int two = (length-three*3)*2;

return (int)(pow(3, three))*(int)(pow(2, two));

}

面試題14 剪繩子

面試題14 剪繩子 題目 給你一根長度為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。思路 動態規劃為了...

面試題14 剪繩子

給你一根長度為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。樣例 輸入 8 輸出 18定義狀態 f ...

面試題14 剪繩子

題目 給你一根長度為n的繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 x k 1 x x k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。動態規劃 int ma...