【数组】Unique Paths II
题目:
Follow up for "Unique Paths":
Now consider if some obstacles are added to the grids. How many unique paths would there be?
An obstacle and empty space is marked as 1
and 0
respectively in the grid.
For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.
[ [0,0,0], [0,1,0], [0,0,0] ]
The total number of unique paths is 2
.
Note: m and n will be at most 100.
思路:
这道题跟Unique Paths的区别在于路线中有了障碍物,只需把障碍物处路线数变为0即可。
/** * @param {number[][]} obstacleGrid * @return {number} */ var uniquePathsWithObstacles = function(obstacleGrid) { var f=[]; var m=obstacleGrid.length,n=obstacleGrid[0].length; for(var i=0;i<m;i++){ f[i]=[]; } for(var i=0;i<m;i++){ if(obstacleGrid[i][0]==1){ f[i][0]=0; for(var j=i+1;j<m;j++){ f[j][0]=0; } break }else{ f[i][0]=1; } } for(var i=0;i<n;i++){ if(obstacleGrid[0][i]==1){ f[0][i]=0; for(var j=i+1;j<n;j++){ f[0][j]=0; } break; }else{ f[0][i]=1 } } for(var i=1;i<m;i++){ for(var j=1;j<n;j++){ if(obstacleGrid[i][j]==1){ f[i][j]=0; }else{ f[i][j]=f[i-1][j]+f[i][j-1]; } } } return f[m-1][n-1]; };