动态规划
- 状态转移方程:动态方程抽离问题的共同解决方程
在本问题中,走到某个格子,他的上一步一定是从左边格子走进来或是从上边走下来的,所以利用这一点可以写一个函数表达式f[i][j] = f[i-1][j] + f[i][j-1]
- 初始状态:相当于对于上述动态方程的特殊情况的枚举
上边界和左边界的赋值就是该问题的初始状态,这两种情况都只能是一种方式走进来,所以都赋值为1
f[0][j] = 1
f[i][0] = 1
var uniquePaths = function(m, n) {
let arr = new Array(m).fill(0).map(() => new Array(n).fill(0))
for (let i = 0; i<m; i++) arr[i][0] = 1
for (let j = 0; j<n; i++) arr[0][j] = 1
for (let i = 1; i<m; i++) {
for (let j = 1; j<n; j++) {
arr[i][j] = arr[i-1][j] + arr[i][j-1]
}
}
return arr[m-1][n-1]
};
评论区