動態規劃
// @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 :未經授權,不得轉載
有問題的小夥伴請在下方留言,喜歡就點個贊吧