Skip to content

Commit ac932bd

Browse files
author
xutao
committed
add
1 parent 7e9b04b commit ac932bd

3 files changed

Lines changed: 37 additions & 1 deletion

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
public class LongestValidParentheses {
2+
public int longestValidParentheses(String s) {
3+
int maxans = 0;
4+
int dp[] = new int[s.length()];
5+
for (int i = 1; i < s.length(); i++) {
6+
if (s.charAt(i) == ')') {
7+
if (s.charAt(i - 1) == '(') {
8+
dp[i] = (i >= 2 ? dp[i - 2] : 0) + 2;
9+
} else if (i - dp[i - 1] > 0 && s.charAt(i - dp[i - 1] - 1) == '(') {
10+
dp[i] = dp[i - 1] + ((i - dp[i - 1]) >= 2 ? dp[i - dp[i - 1] - 2] : 0) + 2;
11+
}
12+
maxans = Math.max(maxans, dp[i]);
13+
}
14+
}
15+
return maxans;
16+
}
17+
}

Week06/MinPathSum.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class MinPathSum {
2+
public int minPathSum(int[][] grid) {
3+
for (int i = grid.length - 1; i >= 0; i--) {
4+
for (int j = grid[0].length - 1; j >= 0; j--) {
5+
if(i == grid.length - 1 && j != grid[0].length - 1)
6+
grid[i][j] = grid[i][j] + grid[i][j + 1];
7+
else if(j == grid[0].length - 1 && i != grid.length - 1)
8+
grid[i][j] = grid[i][j] + grid[i + 1][j];
9+
else if(j != grid[0].length - 1 && i != grid.length - 1)
10+
grid[i][j] = grid[i][j] + Math.min(grid[i + 1][j],grid[i][j + 1]);
11+
}
12+
}
13+
return grid[0][0];
14+
}
15+
}

Week06/NOTE.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
学习笔记
1+
### 总结:
2+
- 1.动态规划好难,从一位到二位再到多维,还是要打破思维定式。
3+
- 2.涉及了很多之前讲过的内容,如果基础不牢靠,看这期Dp就有点吃力。
4+
- 3.总之还是要多练习动态规划的题目,尝试由底到顶的思维模式。
5+
- 4.课后习题有点做不完,难度上升了,要花更多的时间去攻克难题了。

0 commit comments

Comments
 (0)