@@ -81935,12 +81935,18 @@ <h2 id="_2">解法</h2>
81935
81935
<!-- solution:start -->
81936
81936
81937
81937
<h3 id="_3">方法一:动态规划</h3>
81938
- <p>我们定义 $f[i]$ 表示正整数 $n$ 能获得的最大乘积,初始化 $f[1] = 1$。答案即为 $f[n]$。</p>
81939
- <p>状态转移方程为:</p>
81938
+ <p>我们定义 $f[i]$ 表示正整数 $i$ 拆分后能获得的最大乘积,初始时 $f[1] = 1$。答案即为 $f[n]$。</p>
81939
+ <p>考虑 $i$ 最后拆分出的数字 $j$,其中 $j \in [1, i)$。对于 $i$ 拆分出的数字 $j$,有两种情况:</p>
81940
+ <ol>
81941
+ <li>将 $i$ 拆分成 $i - j$ 和 $j$ 的和,不继续拆分,此时乘积为 $(i - j) \times j$;</li>
81942
+ <li>将 $i$ 拆分成 $i - j$ 和 $j$ 的和,继续拆分,此时乘积为 $f[i - j] \times j$。</li>
81943
+ </ol>
81944
+ <p>因此,我们可以得到状态转移方程:</p>
81940
81945
<p>$$
81941
81946
f[i] = \max(f[i], f[i - j] \times j, (i - j) \times j) \quad (j \in [0, i))
81942
81947
$$</p>
81943
- <p>时间复杂度 $O(n^2)$,空间复杂度 $O(n)$。其中 $n$ 为正整数 $n$。</p>
81948
+ <p>最后返回 $f[n]$ 即可。</p>
81949
+ <p>时间复杂度 $O(n^2)$,空间复杂度 $O(n)$。其中 $n$ 为给定的正整数。</p>
81944
81950
<div class="tabbed-set tabbed-alternate" data-tabs="1:9"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><input id="__tabbed_1_9" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">C#</label><label for="__tabbed_1_9">Swift</label></div>
81945
81951
<div class="tabbed-content">
81946
81952
<div class="tabbed-block">
@@ -82170,7 +82176,7 @@ <h3 id="_3">方法一:动态规划</h3>
82170
82176
<!-- solution:start-->
82171
82177
82172
82178
<h3 id="_4">方法二:数学</h3>
82173
- <p>当 $n \lt 4$,此时 $n$ 不能拆分成至少两个正整数的和 ,因此 $n - 1$ 是最大乘积。当 $n \ge 4$ 时,我们尽可能多地拆分 $3$,当剩下的最后一段为 $4$ 时,我们将其拆分为 $2 + 2$,这样乘积最大。</p>
82179
+ <p>当 $n \lt 4$ 时,由于题目要求至少剪一次 ,因此 $n - 1$ 是最大乘积。当 $n \ge 4$ 时,我们尽可能多地拆分 $3$,当剩下的最后一段为 $4$ 时,我们将其拆分为 $2 + 2$,这样乘积最大。</p>
82174
82180
<p>时间复杂度 $O(1)$,空间复杂度 $O(1)$。</p>
82175
82181
<div class="tabbed-set tabbed-alternate" data-tabs="2:8"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><input id="__tabbed_2_7" name="__tabbed_2" type="radio" /><input id="__tabbed_2_8" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">Rust</label><label for="__tabbed_2_7">JavaScript</label><label for="__tabbed_2_8">C#</label></div>
82176
82182
<div class="tabbed-content">
@@ -82429,14 +82435,14 @@ <h3 id="_4">方法二:数学</h3>
82429
82435
82430
82436
<nav>
82431
82437
82432
- <a href="https://github.com/klever34 " class="md-author" title="@klever34 ">
82438
+ <a href="https://github.com/yanglbme " class="md-author" title="@yanglbme ">
82433
82439
82434
- <img src="https://avatars.githubusercontent.com/u/12745225 ?v=4&size=72" alt="klever34 ">
82440
+ <img src="https://avatars.githubusercontent.com/u/21008209 ?v=4&size=72" alt="yanglbme ">
82435
82441
</a>
82436
82442
82437
- <a href="https://github.com/yanglbme " class="md-author" title="@yanglbme ">
82443
+ <a href="https://github.com/klever34 " class="md-author" title="@klever34 ">
82438
82444
82439
- <img src="https://avatars.githubusercontent.com/u/21008209 ?v=4&size=72" alt="yanglbme ">
82445
+ <img src="https://avatars.githubusercontent.com/u/12745225 ?v=4&size=72" alt="klever34 ">
82440
82446
</a>
82441
82447
82442
82448
<a href="https://github.com/xiongbinzou" class="md-author" title="@xiongbinzou">
0 commit comments