63-Unique-Paths-II
0x1 题目详情
0x2 解题思路
0x3 代码实现
}
//当前的row和col对标于网格中的索引
//递归的含义是从当前位置走到目标位置成功的路径
int recur(int[][] obstacleGrid,int row,int col){
int[][] dp=new int[obstacleGrid.length][obstacleGrid[0].length];
int m=obstacleGrid.length-1;
int n=obstacleGrid[0].length-1;
dp[m][n]=1;
for(int i=n-1;i>=0;i--){
if(obstacleGrid[m][i]==1){
continue;
}
dp[m][i]=dp[m][i+1];
}
for(int i=m-1;i>=0;i--){
if(obstacleGrid[i][n]==1){
continue;
}
dp[i][n]=dp[i+1][n];
}
for(int i=m-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
if(obstacleGrid[i][j]==1){
continue;
}
dp[i][j]+=dp[i+1][j];
dp[i][j]+=dp[i][j+1];
}
}
return dp[0][0];
// if(row>=obstacleGrid.length || col>=obstacleGrid[0].length){
// return 0;
// }
// if(obstacleGrid[row][col]==1){
// return 0;
// }
// if(row==obstacleGrid.length-1 && col==obstacleGrid[0].length-1){
// return 1;
// }
// //现在是既没到达目标位置,也没有障碍物
// int result=0;
// result+=recur(obstacleGrid,row+1,col);
// result+=recur(obstacleGrid,row,col+1);
// return result;
}0x4 课后总结
Last updated