zhedahht / CodingInterviewChinese2

《剑指Offer:名企面试官精讲典型编程面试题》第二版源代码
Other
5.32k stars 2.17k forks source link

面试题14剪绳子,为什么只接收length入参 #46

Open ExcitedSpider opened 5 years ago

ExcitedSpider commented 5 years ago

如题,明明还有剪成m段的要求,但解法中没有考虑到。比如长度为8的绳子,要求剪成2段最大就是4*4=16,要求剪成3段最大就是3*3*2=18,要求剪成4段最大就是2*2*2*2=16。但参考解法中只要输入8输出一定就是18,很疑惑。

Jennifer1996 commented 5 years ago

m段不管你设置m值为多少,题目只要乘积最大值作为最优解,因此只要18大于其他乘积,不管他剪几段,输出都为18

zzumatthew commented 4 years ago

m段不管你设置m值为多少,题目只要乘积最大值作为最优解,因此只要18大于其他乘积,不管他剪几段,输出都为18

那么问题的描述不就应该改成,长度为n米的绳子,请问剪成多少段可以满足每一段的长度的乘积最大。如果给你一根长度为n的绳子,请把绳子剪成m段,那么为什么不是在m固定的情况下,找到乘积最大值?

我觉得这个题的描述有问题。