我们令 dp[i][j] 是到达 i, j 最多路径
dp[i][j]
i, j
动态方程:dp[i][j] = dp[i-1][j] + dp[i][j-1]
dp[i][j] = dp[i-1][j] + dp[i][j-1]
注意,对于第一行 dp[0][j],或者第一列 dp[i][0],由于都是在边界,所以只能为 1
dp[0][j]
dp[i][0]
1
时间复杂度:O(m*n)O(m∗n)
空间复杂度:O(m * n)O(m∗n)
优化:因为我们每次只需要 dp[i-1][j],dp[i][j-1]
dp[i-1][j],dp[i][j-1]
所以我们只要记录这两个数,直接看代码吧!
Last updated 3 years ago