上面这个是我自己写的 用二维数组 记录到达每个位置的路径个数、
public int uniquePathsWithObstacles(int[][] g) {
if(g.length==0||g==null) return 0;
int m=g.length;
int n=g[0].length;
int[][] r=new int[m][n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(g[i][j]==1){
r[i][j]=0;
}else{
if(i==0&&j==0){
r[i][j]=1;
}else if(i==0){
r[i][j]=r[i][j-1];
}else if(j==0){
r[i][j]=r[i-1][j];
}else{
r[i][j]=r[i][j-1]+r[i-1][j];
}
}
}
}
return r[m-1][n-1];
}
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int width = obstacleGrid[0].length;
int[] dp = new int[width];
dp[0] = 1;
for (int[] row : obstacleGrid) {
for (int j = 0; j < width; j++) {
if (row[j] == 1)
dp[j] = 0;
else if (j > 0)
dp[j] += dp[j - 1];
}
}
return dp[width - 1];
}
unique path II 动态规划 用一位数组完成
最新推荐文章于 2020-03-23 16:34:00 发布