思路:
- 如果是只有一行或者一列的情况,那就都只有一种路径
- 如果是对角线位置,就有先右后下(start->A->C)和先下后右(start->B->C)两种路径,如下图所示:
- 以此类推,我们可以得出每个位置的路径总数都是左边的路径加上下边的路径
function short(m, n) {
var i,j;
let dp=new Array(n).fill(0).map(x=>new Array(m).fill(0));
for(i=0; i<m; i++) {
dp[0][i]=1;
}
for(i=0; i<n; i++) {
dp[i][0]=1;
}
for(i=1; i<n; i++){
for(j=1; j<m; j++){
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[n-1][m-1];
}
console.log(short(7,3));