劍指Offer 剪繩子

2021-10-08 14:36:03 字數 592 閱讀 8212

分析:這個和貪心演算法的區域性最優解恰好相反,貪心演算法相當於自上而下,但是此題算是動態規劃,屬於自下而上.從最基礎的開始.

首先,先例舉一下:

當繩長2公尺時,max情況為2,

當繩長3公尺時,max情況為3,

當繩長4公尺時,max情況為2x2,

當繩長5公尺時,max情況為2x3,

當繩長6公尺時,max情況為3x3,

當繩長7公尺時,max情況為3x4=3x2x2,

當繩長8公尺時,max情況為2x3x3,

當繩長9公尺時,max情況為3x3x3,

當繩長10公尺時,max情況為3x3x2x2,

…這麼多,由此可見無論以後繩子多長,拆到最後的基礎數字就是2和3,此時又會面臨乙個情況:拆成2和3有多種組合

例如8公尺和10公尺的:

8公尺: 2x2x2和2x3x3

10公尺:3x3x2x2和2x2x2x2x2

…我們不難發現,如果需要乘積最大,那我們就需要盡可能多的3就行了.下面是**,詳情看註解

private

static int cut

(int target)

劍指Offer 剪繩子 和剪繩子

劍指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的三段,此時得到的...

劍指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 乘法計算,除了一以外,越多的數相...