剪繩子(貪心 動態規劃)

2021-10-02 04:31:48 字數 901 閱讀 4064

準備找工作,開始刷題,牛客劍指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。

輸入描述:

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

輸出答案。
示例1

8
18
題解:

方法一:

方法二:

**:

#includeusing namespace std;

//貪心

int cutrope1(int number)

//動態規劃

int cutrope2(int number)

dp[i] = res;

}return dp[number];

}int main()

return 0;

}

好了,總結一下吧;這道題我也做了很久,最後找了找規律,利用動態規劃做出來;然後看題解發現貪心方法是真的挺妙的,相比動態規劃更容易理解,並且時間、空間方面都略勝動態規劃。嗯嗯…刷其它題去了

剪繩子(動態規劃 貪心演算法)

劍指offer 中題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。第...

動態規劃 剪繩子

include include include using namespace std 題目 給你一根長度為n的繩子,請把繩子剪成m段 m和n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度為8時,我們把它剪成...

剪繩子動態規劃

題目 給你一根長度為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.我們有兩種不同的方法解決這...