給你一根長度為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
solution
:def
cutrope
(self, number)
:# write code here
ld =
for z in
range(2
, number +1)
: max_mulity =
0for m in
range(1
,int
(z /2)
+1):
n = z - m
tmp_arr =
[ld[m]
* ld[n]
, m * ld[n]
, ld[m]
* n, m * n]
for t in tmp_arr:
if t > max_mulity:
max_mulity = t
ld[z]
= max_mulity
return ld[number]
o(n*(1+n/2)/2*4) 約等於 o(n^2) 劍指offer67 剪繩子
給你一根長度為n的繩子,請把繩子剪成整數長的m段 m n都是整數,n 1並且m 1,m n 每段繩子的長度記為k 1 k m 請問k 1 x xk m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。第一次做這個題的時候其實走入了歧途...
劍指offer67 剪繩子
給你一根長度為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 67剪繩子(Python)
題目 給你一根長度為n的繩子,請把繩子剪成整數長的m段 m n都是整數,n 1並且m 1,m n 每段繩子的長度記為k 1 k m 請問k 1 x xk m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。思路 第一種方法是暴力遞迴法...