前端js实现动态规划——不同路径

431 阅读1分钟

有多少不同路径走法?m行 x n列的网格,从左上角移动到右下角,每次只能向左或向下移动。

function uniquePaths(m, n) {  
    let dp = new Array(m); // 先创建一维数组  
    for (let i = 0; i < m; i++) {    
        dp[i] = new Array(n); // 开始转换成二维数组
        dp[i][0] = 1; // 由于只能向左移动,故到达第一行任一格子就只有一种走法
    }  
    for (let i = 0; i < n; i++) {    
        dp[0][i] = 1; // 由于只能向下移动,故到达第一列任一格子就只有一种走法  
    }  
    for (let i = 1; i < m; i++) {     
        for (let j = 1; j < n; j++) {        
            dp[i][j] = dp[i][j-1] + dp[i-1][j]; // 其余格子到达的方法是临近他的上方格子和左边格子路径之和      
         }  
    }  
    return dp[m-1][n-1];  
}