Skip to content

Commit c804da9

Browse files
committed
Week06 lowest stand-line to finish homework because my surgery
1 parent 00b78b1 commit c804da9

3 files changed

Lines changed: 55 additions & 1 deletion

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
public:
3+
int maximalSquare(vector<vector<char>>& matrix) {
4+
int m = matrix.size();
5+
if (!m) return 0;
6+
int n = matrix[0].size();
7+
8+
vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));
9+
int len = 0;
10+
11+
for (int i = 0; i < m; i++) {
12+
for (int j = 0; j < n; j++) {
13+
if (matrix[i][j] == '0') continue;
14+
dp[i + 1][j + 1] = min(min(dp[i][j], dp[i + 1][j]), dp[i][j + 1]) + 1;
15+
len = max(len , dp[i + 1][j + 1]);
16+
}
17+
}
18+
19+
return len * len;
20+
}
21+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public:
3+
int minPathSum(vector<vector<int>>& grid) {
4+
int m = grid.size();
5+
if (!m) return 0;
6+
int n = grid[0].size();
7+
8+
vector<int> dp(n + 1, INT_MAX);
9+
dp[1] = 0;
10+
11+
for (int i = 1; i <= m; i++)
12+
for (int j = 1; j <= n; j++)
13+
dp[j] = min(dp[j - 1], dp[j]) + grid[i - 1][j - 1];
14+
15+
return dp[n];
16+
}
17+
};

Week06/NOTE.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
1-
学习笔记
1+
学习笔记
2+
3+
动态规划
4+
1.模型
5+
多阶段决策最优解模型
6+
2.最优子结构
7+
问题的最优解包含子问题的最优解
8+
可以通过子问题的最优解,推导出问题的最优解
9+
3.无后效性
10+
推导后面阶段状态时,只关心前面阶段的状态值
11+
某阶段状态一旦确定,不受之后阶段的决策影响
12+
4.重复子问题
13+
不同的决策序列,到达某个相同的阶段时,可能会产生重复的状态
14+
5.状态转移方程
15+
分析某个问题的最优子结构
16+
写递推公式
17+
迭代递推|递归加备忘录

0 commit comments

Comments
 (0)