Update dp
All checks were successful
ci/woodpecker/push/test Pipeline was successful

This commit is contained in:
Sainnhe Park 2023-02-08 15:28:22 +08:00
parent 0b1e7287bc
commit eeacdcc5a8
2 changed files with 17 additions and 0 deletions

View File

@ -34,3 +34,19 @@
2. `dp[i][j] = if (isNotObstacle[i - 1][j]) dp[i - 1][j] + if (isNotObstacle[i][j - 1]) dp[i][j - 1]` 2. `dp[i][j] = if (isNotObstacle[i - 1][j]) dp[i - 1][j] + if (isNotObstacle[i][j - 1]) dp[i][j - 1]`
3. 如果 `(i, 0)` 是障碍物,那么 `(0, 0)``(i - 1, 0)` 都初始化为 `1`,后面的初始化为 `0`。`(0, j)` 同理 3. 如果 `(i, 0)` 是障碍物,那么 `(0, 0)``(i - 1, 0)` 都初始化为 `1`,后面的初始化为 `0`。`(0, j)` 同理
4. 从前向后遍历 4. 从前向后遍历
## [343. 整数拆分](https://leetcode.cn/problems/integer-break/)
1. `dp[i]` 为分拆数字 `i`,可以得到的最大乘积
2. `dp[i] = max{dp[i], (i - j) * j, dp[i - j] * j}`
3. `dp[2] = 1`
4. 从前向后遍历
## [96. 不同的二叉搜索树](https://leetcode.cn/problems/unique-binary-search-trees/)
1. `dp[i]``n == i` 时二叉搜索树的个数
2. `dp[i] += dp[j - 1] * dp[i - j]``j - 1` 为 `j` 为头结点左子树节点数量,`i - j` 为以 `j` 为头结点右子树节点数量
3. `dp[0] = 1` 空节点也是一棵二叉树,也是一棵二叉搜索树
4. 从前向后遍历
找规律

View File

@ -13,3 +13,4 @@
技巧: 技巧:
- 如果可以的话,初始化 `dp` 的长度,而不要每次都 `dp.push_back()`。初始化能够有更好的性能。 - 如果可以的话,初始化 `dp` 的长度,而不要每次都 `dp.push_back()`。初始化能够有更好的性能。
- 知道用 DP ,也知道 `dp[i]` 应该用来表示什么但不知道递推关系。这个时候多举几个简单的例子找规律s0096