# -*- coding:utf-8 -*-
class Solution:
def cutRope(self, number):
# write code here
if number < 2:
return 0
if number == 2:
return 1
if number == 3:
return 2
product = [0, 1, 2, 3]
for i in range(4, number + 1): # 外循环自下而上确定每个长度的最优值
maxValue = 0
# 内循环确定本次长度的最优值,其中只要循环i长度的一半即可,后面一半是重复前面一半的情况
for j in range(1, i//2 + 1):
temp = product[j] * product[i - j]
if maxValue < temp:
maxValue = temp
product.append(maxValue) # 放内循环外边,确保添加进去的是最大值
maxValue = product[number]
return maxValue

京公网安备 11010502036488号