We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
原题链接
先明确题意,机器人只能选择向下或者向右走。
使用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]
const uniquePaths = (m, n) => { const dp = Array.from(Array(n), () => Array(m).fill(1)) for (let i = 1; i < n; i++) { for (let j = 1; j < m; j++) { dp[i][j] = dp[i][j - 1] + dp[i - 1][j] } } return dp[n - 1][m - 1] }
每次只需要从上边和左边的位置转移过来,所以我们可以用一个一维数组来优化空间,滚动更新每行的路径数量。
dp[j] = dp[j] + dp[j - 1]
第 i 行第 j 列位置的路径数量 = 第 i 行第 j - 1 列位置的路径数量 + 第 i - 1 行第 j 列位置的路径数量
const uniquePaths = function(m, n) { const dp = new Array(n).fill(1) for (let i = 1; i < m; i++) { for (let j = 1; j < n; j++) { dp[j] = dp[j - 1] + dp[j] } } return dp[n - 1] }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
原题链接
动态规划
定义状态
先明确题意,机器人只能选择向下或者向右走。
使用
dp[i][j]
来表示终点坐标(i, j)。dp[i-1][j]
dp[i][j-1]
状态转移方程
dp[i][j] = dp[i-1][j] + dp[i][j-1]
处理边界
降维
每次只需要从上边和左边的位置转移过来,所以我们可以用一个一维数组来优化空间,滚动更新每行的路径数量。
状态转移方程
dp[j] = dp[j] + dp[j - 1]
第 i 行第 j 列位置的路径数量 = 第 i 行第 j - 1 列位置的路径数量 + 第 i - 1 行第 j 列位置的路径数量
The text was updated successfully, but these errors were encountered: