Closed luzijing closed 4 years ago
if(length < 2) return 0;
if(length == 2) return 1;
if(length == 3) return 2;
这里是长度的返回值
而
products[1] = 1;
products[2] = 2;
products[3] = 3;
这些值是用来计算后续答案的,正确的值在开始时已经返回,后续计算需要用到 products[2]、products[3],比如 f(5) = f(2) f(3) = 2 3,是不能等于 1 * 2 的
没有错误,当length<=3的时候,我们直接返回了结果。如果整个绳子的长度为3,我们必须把绳子剪开,因为题目要求m>1,其中一段为2,另一段为1,这样结果就是2。 当length>=4的时候,我们可以把绳子剪成两段,其中一段为3另一段为1,这样长度为3的那一段的最大值就是3而不是2,因为这一段我们不需要再剪了。当然长度为4的最大值是2和2的组合,我们已经存储了2的长度。
没有错误,当length<=3的时候,我们直接返回了结果。如果整个绳子的长度为3,我们必须把绳子剪开,因为题目要求m>1,其中一段为2,另一段为1,这样结果就是2。 当length>=4的时候,我们可以把绳子剪成两段,其中一段为3另一段为1,这样长度为3的那一段的最大值就是3而不是2,因为这一段我们不需要再剪了。当然长度为4的最大值是2和2的组合,我们已经存储了2的长度。
谢谢大佬
谢谢silencemao的解释。
。。。。。。。。。。。。。 products[1] = 1; products[2] = 2; products[3] = 3; 你上面写的跟下面写的矛盾呀。。。。。