路径规划02
路径规划02
在路径规划01中加一个障碍物
63. 不同路径 II
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
int m=obstacleGrid.size();
int n=obstacleGrid[0].size();
int a[m][n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
a[i][j]=0;
}
}
//也可使用memset(a,0,sizeof(a))来全初始化为0;
if(!obstacleGrid[0][0])
a[0][0]=1;
//迭代方程:a[m][n]=a[m-1][n]+a[m][n-1];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(!obstacleGrid[i][j]){
if(i>0 && j>0){
a[i][j]=a[i-1][j]+a[i][j-1];
}else if(i>0){
a[i][j]=a[i-1][j];
}else if(j>0){
a[i][j]=a[i][j-1];
}
}
}
}
return a[m-1][n-1];
}
};
迭代方程:a[m][n]=a[m-1][n]+a[m][n-1];
迭代方向:右和下,有障碍不行
边界情况:上边缘,左边缘