# -*- 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