劍指67 剪繩子

2022-06-08 02:24:07 字數 647 閱讀 2271

給你一根長度為n的繩子,請把繩子剪成整數長的m段(m、n都是整數,n>1並且m>1,m<=n),每段繩子的長度記為k[1],...,k[m]。請問k[1]x...xk[m]可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18。

應用動態規劃求解問題的特點:

貪婪演算法和動態規劃不一樣。應用貪婪演算法解決問題時,每一步都可以做出乙個貪婪的選擇,基於這個選擇,確定能夠得到最優解。

思路1:動態規劃。(時間複雜度:o(n^2), 空間複雜度:o(n))

思路2:貪婪演算法。(時間複雜度:o(1),空間複雜度:o(1))

按照如下的策略剪繩子,則得到的各段繩子的長度的乘積最大:

也就是

public

class

solution else

if (target % 3 == 1)

else}}

劍指offer No 67 剪繩子

給你一根長度為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。輸入乙個數n,意義見題面...

《劍指offer》JZ67剪繩子

jz67 給你一根長度為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。解析 jz67...

劍指offer 67 剪繩子

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