File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 1- 学习笔记
1+ ### 总结:
2+ - 1.动态规划好难,从一位到二位再到多维,还是要打破思维定式。
3+ - 2.涉及了很多之前讲过的内容,如果基础不牢靠,看这期Dp就有点吃力。
4+ - 3.总之还是要多练习动态规划的题目,尝试由底到顶的思维模式。
5+ - 4.课后习题有点做不完,难度上升了,要花更多的时间去攻克难题了。
You can’t perform that action at this time.
0 commit comments