动态规划
// @lc code=start
/**
* @param {number[][]} obstacleGrid
* @return {number}
*/
var uniquePathsWithObstacles = function(obstacleGrid) {
if (obstacleGrid == null || obstacleGrid.length == 0) {
return 0;
}
let row = obstacleGrid.length;
let col = obstacleGrid[0].length;
let dp = new Array(row);
for (let i = 0; i < row; i++) {
dp[i] = new Array(col).fill(0);
}
// 初始化第一行
for (let i = 0; i < col && obstacleGrid[0][i] == 0; i++) {
dp[0][i] = 1;
}
// 初始化第一列
for (let i = 0; i < row && obstacleGrid[i][0] == 0; i++) {
dp[i][0] = 1;
}
// 遍历求解
for (let i = 1; i < row; i++) {
for (let j = 1; j < col; j++) {
if (obstacleGrid[i][j] == 0) {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
}
return dp[row - 1][col - 1];
};
// @lc code=end
感谢观看 期待关注
关注我,带你一起写bug
warning :未经授权,不得转载
有问题的小伙伴请在下方留言,喜欢就点个赞吧