Skip to content

Commit b4b3ba2

Browse files
committed
review-9_2
1 parent dbb679d commit b4b3ba2

File tree

4 files changed

+50
-9
lines changed

4 files changed

+50
-9
lines changed

src/main/java/com/chen/algorithm/znn/dynamic/test120/Solution.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,24 @@ public void testCase() {
8484
triangle.add(Arrays.asList(4, 1, 8, 3));
8585

8686
System.out.println(minimumTotal2(triangle));
87+
System.out.println(minimumTotal3(triangle));
8788

8889
}
90+
91+
public int minimumTotal3(List<List<Integer>> triangle) {
92+
if (triangle == null || triangle.size() == 0) {
93+
return 0;
94+
}
95+
96+
int n = triangle.size();
97+
int m = triangle.get(n - 1).size();
98+
int[] dp = new int[m + 1];
99+
100+
for (int i = n - 1; i >= 0; i--) {
101+
for (int j = 0; j <= i; j++) {
102+
dp[j] = Math.min(dp[j], dp[j + 1]) + triangle.get(i).get(j);
103+
}
104+
}
105+
return dp[0];
106+
}
89107
}

src/main/java/com/chen/algorithm/znn/dynamic/test64/Solution.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
*
1818
* @Auther: zhunn
1919
* @Date: 2020/11/5 11:33
20-
* @Description: 最小路径和:1-动态规划;2-动态规划-优化空间,使用原数组空间;3-动态规划-优化空间,不更改原数组(可忽略)
20+
* @Description: 最小路径和:1-动态规划(推荐);2-动态规划-优化空间,使用原数组空间;3-动态规划-优化空间,不更改原数组(可忽略)
2121
*/
2222
public class Solution {
2323

2424
/**
25-
* 1-动态规划,官方解答
25+
* 1-动态规划,官方解答(推荐)
2626
*
2727
* @param grid
2828
* @return
@@ -107,6 +107,6 @@ public int minPathSum3(int[][] grid) {
107107
public void testCase() {
108108
int[][] nums = {{1, 3, 1}, {1, 5, 1}, {4, 2, 1}};
109109

110-
System.out.println(minPathSum2(nums));
110+
System.out.println(minPathSum(nums));
111111
}
112112
}

src/main/java/com/chen/algorithm/znn/dynamic/test70/Solution.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,28 @@ public int climbStairs2(int n) {
8686
public void test() {
8787
int res = climbStairs2(10);
8888
System.out.println(res);
89+
int res3 = climbStairs3(10);
90+
System.out.println(res3);
91+
}
92+
93+
public int climbStairs3(int n) {
94+
if (n <= 0) {
95+
return 0;
96+
}
97+
if (n == 1) {
98+
return 1;
99+
}
100+
if (n == 2) {
101+
return 2;
102+
}
103+
104+
int[] dp = new int[n + 1];
105+
dp[0] = 0;
106+
dp[1] = 1;
107+
dp[2] = 2;
108+
for (int i = 3; i <= n; i++) {
109+
dp[i] = dp[i - 1] + dp[i - 2];
110+
}
111+
return dp[n];
89112
}
90113
}

src/main/java/com/chen/algorithm/znn/note

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,16 +193,16 @@ dynamic
193193
dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][2]);dp[i][2] = dp[i - 1][1] + prices[i];
194194
714、 可以买卖(交易)多次,一次买卖含一次手续费
195195
(股票买卖系列 end)
196-
70. 爬楼梯 ***
197-
120. 三角形最小路径和 ***
198-
64. 最小路径和 ***
196+
70. 爬楼梯 *** 1-迭代,2-动态规划,dp[i] = dp[i - 1] + dp[i - 2];
197+
120. 三角形最小路径和 *** for(int i = n - 1; i >= 0; i--);for(int j = 0; j <= i; j++);dp[j]=Math.min(dp[j],dp[j+1]) + triangle.get(i).get(j);
198+
64. 最小路径和 *** 初始化dp[0][0] = grid[0][0];初始化第0行和第0列,for(int j=1;j<cols;j++);dp[i][j]=Math.min(dp[i-1][j], dp[i][j-1])+grid[i][j];
199+
62. 不同路径 ***
199200
53. 最大子序和 ***
200-
152. 乘积最大子数组***
201201
300. 最长上升子序列 ***
202-
72. 编辑距离 ***
203-
62. 不同路径 ***
202+
152. 乘积最大子数组***
204203
279. 完全平方数 ***
205204
343. 整数拆分 ***
205+
72. 编辑距离 ***
206206
198. 打家劫舍 ***
207207
213. 打家劫舍 II ***
208208
337. 打家劫舍 III ***

0 commit comments

Comments
 (0)