面試題14 劍指offer 剪繩子

2021-09-26 06:31:00 字數 682 閱讀 1475

題目:

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

思路:

利用動態規劃法,f(n)表示長度為n的繩子能夠得到的最大乘積,f(n)=max(f(i)*f(n-i)),其中0**:

public

static

intcutstring

(int n)

if(n ==2)

if(n ==3)

int[

] pos =

newint

[n +1]

;int max;

pos[1]

=1; pos[2]

=2; pos[3]

=3;for

(int i =

4; i <= n; i++)}

pos[i]

= max;

} max = pos[n]

;return max;

}

劍指offer 面試題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。第一種是動態規劃 自下而上 public...

《劍指Offer》面試題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。測試用例 功能測試 ...

劍指offer面試題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。解題思路...