chapter_greedy/max_product_cutting_problem/ #643
Replies: 14 comments 13 replies
-
Enhanced security |
Beta Was this translation helpful? Give feedback.
-
动态规划,对比一下就可以看出贪心的效率了 public static int dpMultiply(int num)
{
int[] max = new int[num + 1];
// 初始化,0和1都无法分割,为0
max[0] = 0;
max[1] = 0;
for (int i = 2; i <= num; i++)
{
// 第一次分割长度
for (int len = 1; len <= i / 2; len++)
{
int temp = Math.max(len * (i - len), len * max[i - len]);
max[i] = Math.max(temp, max[i]);
}
}
return max[num];
} |
Beta Was this translation helpful? Give feedback.
-
我还在想条件不是 |
Beta Was this translation helpful? Give feedback.
-
感谢老师们的讲解,但小白有个问题想请教一下。虽然分3和分2最后的因子都是3,2,1,但在思考的过程中,为什么在得到分2的条件后,没有考虑n>=4.5(或者n>=5)就分3的情况,直接考虑后续33和22*2的大小问题。这篇讲解中是因为分3和分2最后都是3,2,1为因子所以省略了吗,还是有什么别的逻辑思路我没有考虑到。老师可不可以有时间的时候帮我解答一下。谢谢! |
Beta Was this translation helpful? Give feedback.
-
求问"假设从n中分出一个因子2,则它们的乘积为 2*(n-2)。我们将该乘积与n作比较:"。🤔为啥上来就想到分一个因子2而不是其他的,从而推出n>=4还要继续分的 |
Beta Was this translation helpful? Give feedback.
-
数学这玩意你知道别人是怎么想到一些定理的吗?一样的道理,灵感罢了
|
Beta Was this translation helpful? Give feedback.
-
你说的第一句怎么说呢,数学最忌讳这么说了。
… 根据对数学运算的理解,我们认为 n * m > n + m 通常是成立的,且 n 和 m 越大,这个不等式就更有可能成立。从这个角度思考,用因子 2 来分析是最合适的,因为它能覆盖到最广的情况。如果用更大的因子 3, 4, 5, ... 来分析也行,但最后你还是会发现 2 * 2 = 4 ,即因子 4 也可以再分。
|
Beta Was this translation helpful? Give feedback.
-
小白尝试证明一下,勿喷哈哈 |
Beta Was this translation helpful? Give feedback.
-
k神,我有个疑问,三种幂函数的时间复杂度不应该都是O(logn)吗?如果是指调用函数的时间,我直接用内置的pow函数不是比用math库调pow函数更快嘛 |
Beta Was this translation helpful? Give feedback.
-
我的思路是先尝试对半分,然后从(n^2/4-n=0)的解想到了小于等于四都要切分,但没想到替换成3,TUT |
Beta Was this translation helpful? Give feedback.
-
“这说明大于等于4的整数都应该被切分”, 先分析出子问题 |
Beta Was this translation helpful? Give feedback.
-
在考虑只分一次时,分1就变小。分的数x全一样时用函数画图分析可得n大于e时分的数乘积才能变大,且x大于e,x取3能使乘积最大。n小于4不够分,n=4分一个x=3会出现1变小,发现lnx/x函数在2和4的值一样,故选择妥协不要3了,选择两个2起码不变小,n=5分一个3虽然没满足分的数全为3,不过剩下的2起码不是1,能变大。从而分解出子问题。 |
Beta Was this translation helpful? Give feedback.
-
这里有点蒙,先看评论区 |
Beta Was this translation helpful? Give feedback.
-
def maxProduct(n: int) -> int:
|
Beta Was this translation helpful? Give feedback.
-
chapter_greedy/max_product_cutting_problem/
动画图解、一键运行的数据结构与算法教程
https://www.hello-algo.com/chapter_greedy/max_product_cutting_problem/
Beta Was this translation helpful? Give feedback.
All reactions