题解 | #走方格的方案数#
走方格的方案数
https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function (line) {
const [n, m] = line.split(' ').map(Number);
// 两个输入的数字(n:行, m:列)
/**
最后一列,最后一行的点到最右下角的路线都只有一种方式
某个点到最右下角一共有多少种方式,由其右及下两个点相加
*/
// 创建一个n+1行m+1列的二维数组
const dp = new Array(n+1).fill(0).map(()=>new Array(m+1))
// 给最后一行赋值
for(let i = m; i >= 0; i-- ){
dp[n][i] = 1
}
// 给最后一列赋值
for(let i = n; i >= 0; i-- ){
dp[i][m] = 1
}
// 计算最左上角到最右下角一共有多少种方式
for(let i = n; i > 0; i--){
for(let j = m; j > 0; j-- ){
dp[i-1][j-1] = dp[i][j-1] + dp[i-1][j]
}
}
console.log(dp[0][0])
});