Skip to content

Commit 55d7cf7

Browse files
committed
二刷343
1 parent 331e3c7 commit 55d7cf7

File tree

6 files changed

+54
-2
lines changed

6 files changed

+54
-2
lines changed

docs/0343-integer-break.adoc

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,35 @@ Given a positive integer _n_, break it into the sum of *at least* two positive i
3030

3131
== 解题分析
3232

33-
image::images/0343-1.png[{image_attr}]
33+
image::images/0343-02.png[{image_attr}]
34+
35+
image::images/0343-01.png[{image_attr}]
3436

3537
[[src-0343]]
38+
[tabs]
39+
====
40+
一刷::
41+
+
42+
--
3643
[{java_src_attr}]
3744
----
3845
include::{sourcedir}/_0343_IntegerBreak.java[tag=answer]
3946
----
47+
--
48+
49+
二刷::
50+
+
51+
--
52+
[{java_src_attr}]
53+
----
54+
include::{sourcedir}/_0343_IntegerBreak_2.java[tag=answer]
55+
----
56+
--
57+
====
4058

4159
== 参考资料
4260

43-
. https://leetcode-cn.com/problems/jian-sheng-zi-lcof/solution/mian-shi-ti-14-i-jian-sheng-zi-tan-xin-si-xiang-by/[面试题14- I. 剪绳子(数学推导 / 贪心思想,清晰图解) - 剪绳子 - 力扣(LeetCode)^] -- 数学分析真牛逼!
61+
. https://leetcode.cn/problems/jian-sheng-zi-lcof/solutions/104809/mian-shi-ti-14-i-jian-sheng-zi-tan-xin-si-xiang-by/[面试题14- I. 剪绳子(数学推导 / 贪心思想,清晰图解) - 剪绳子 - 力扣(LeetCode)^] -- 数学分析真牛逼!
62+
. https://leetcode.cn/problems/integer-break/solutions/352875/zheng-shu-chai-fen-by-leetcode-solution/[343. 整数拆分 - 官方题解^]
63+
. https://leetcode.cn/problems/integer-break/solutions/353190/shou-hua-tu-jie-di-gui-ji-yi-hua-di-gui-dong-tai-g/[343. 整数拆分 - 「手画图解」递归、记忆化递归、动态规划^]
4464

File renamed without changes.

docs/images/0343-02.png

166 KB
Loading

logbook/202406.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,11 @@
464464
|{doc_base_url}/0063-unique-paths-ii.adoc[题解]
465465
|动态规划
466466

467+
|{counter:codes}
468+
|{leetcode_base_url}/integer-break/[343. Integer Break^]
469+
|{doc_base_url}/0343-integer-break.adoc[题解]
470+
|动态规划
471+
467472
|===
468473

469474
截止目前,本轮练习一共完成 {codes} 道题。

src/main/java/com/diguage/algo/leetcode/_0343_IntegerBreak.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ public class _0343_IntegerBreak {
1515
* Memory Usage: 38.1 MB, less than 14.29% of Java online submissions for Integer Break.
1616
*
1717
* Copy from: https://leetcode-cn.com/problems/jian-sheng-zi-lcof/solution/mian-shi-ti-14-i-jian-sheng-zi-tan-xin-si-xiang-by/[面试题14- I. 剪绳子(数学推导 / 贪心思想,清晰图解) - 剪绳子 - 力扣(LeetCode)]
18+
*
19+
* @author D瓜哥 · https://www.diguage.com
20+
* @since 2020-04-26 16:38
1821
*/
1922
public int integerBreak(int n) {
2023
if (n < 2) {
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.diguage.algo.leetcode;
2+
3+
public class _0343_IntegerBreak_2 {
4+
// tag::answer[]
5+
/**
6+
* @author D瓜哥 · https://www.diguage.com
7+
* @since 2024-09-13 16:08:50
8+
*/
9+
public int integerBreak(int n) {
10+
// 1. 确定 dp 数组(dp table)以及下标的含义
11+
// dp[i] 表示 i 值被拆分后最大乘积数
12+
// 3. dp 数组,默认就是0, 0、1拆分后最大乘积就是0,无需初始化
13+
int[] dp = new int[n + 1];
14+
// 4. 确定遍历顺序,从 1 → n/2 + 1 逐个遍历
15+
for (int i = 2; i <= n; i++) {
16+
for (int j = 1; j < i / 2 + 1; j++) {
17+
// 2. 确定递推公式: dp[i] = max(j*(i-j), j * dp[i - j])
18+
dp[i] = Math.max(Math.max(j * (i - j), j * dp[i - j]), dp[i]);
19+
}
20+
}
21+
return dp[n];
22+
}
23+
// end::answer[]
24+
}

0 commit comments

Comments
 (0)