面試題14 剪繩子

2021-10-08 23:47:46 字數 521 閱讀 3695

題目:給你一根長度為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

maxproductaftercutting_solution1

(int length)

} max=products[length]

;delete

products;

return max;

}

貪婪演算法

當n>=5時,我們盡可能多地剪長度為3的繩子;當剩下的繩子長度為4時,把繩子剪成兩段長度為2的繩子。

int

maxproductaftercutting_solution2

(int length)

面試題14 剪繩子

長度為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...

面試題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 ...