杨乐乐
Never too late

Follow

Never too late

Follow
Day 39 动态规划 - 不同路径

Day 39 动态规划 - 不同路径

杨乐乐's photo
杨乐乐
·Feb 22, 2023·

1 min read

Table of contents

  • 62. 不同路径
  • 63. 不同路径 ii

62. 不同路径

function uniquePaths(m: number, n: number): number {
    let dp = new Array(m).fill(1).map(() => new Array(n).fill(1));

    for (let i = 1; i < m; i++) {
        for (let j = 1; j < n; j++) {
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
        }
    }

    return dp[m - 1][n - 1]
};

63. 不同路径 ii

function uniquePathsWithObstacles(obstacleGrid: number[][]): number {
    let dp = new Array(obstacleGrid.length).fill(0).map(() => new Array(obstacleGrid[0].length).fill(0))

    for (let i = 0; i < obstacleGrid.length && obstacleGrid[i][0] === 0; i++) {
        dp[i][0] = 1;
    }

    for (let j = 0; j < obstacleGrid[0].length && obstacleGrid[0][j] === 0; j++) {
        dp[0][j] = 1;
    }

    for (let i = 1; i < obstacleGrid.length; i++) {
        for (let j = 1; j < obstacleGrid[0].length; j++) {
            if (obstacleGrid[i][j] === 1) {
                continue;
            }
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
        }
    }

    return dp[obstacleGrid.length - 1][obstacleGrid[0].length - 1];
};
 
Share this