题解 | #走方格的方案数#
走方格的方案数
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]) });