unique path II 动态规划 用一位数组完成

来源:互联网 发布:mysql 按月查询 编辑:程序博客网 时间:2024/06/14 05:32


上面这个是我自己写的  用二维数组  记录到达每个位置的路径个数、

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];}

0 0
原创粉丝点击