机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角 问总共有多少条不同的路径?
输入: m = 3, n = 7
输出: 28
动态规划
f(i,j)表示从左上角走到(i,j)的路径数量,其中i和j的范围分别是[0,m) 和 [0,n)
不难看出有下面方程式:f(i,j) = f(i-1,j)+f(i,j-1)
var uniquePaths = function (m, n) {
var arr = new Array(m).fill(0).map(() => new Array(n).fill(0));
for (var i = 0; i < m; i++) {
arr[i][0] = 1;
}
for (var j = 0; j < n; j++) {
arr[0][j] = 1;
}
for (var i = 1; i < m; i++) {
for (var j = 1; j < n; j++) {
arr[i][j] = arr[i - 1][j] + arr[i][j - 1];
}
}
return arr[m - 1][n - 1];
};
代码调试
console.log(uniquePaths(3, 7));