题目 :不同的路径 II

来源:互联网 发布:雷盾网络验证破解版 编辑:程序博客网 时间:2024/05/21 22:53

跟进“不同的路径”:

现在考虑网格中有障碍物,那样将会有多少条不同的路径?

网格中的障碍和空位置分别用10来表示。

您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题?AirbnbAlibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Microsoft NetEase Nvidia Oracle Pinterest Snapchat Tencent Twitter Uber Xiaomi Yahoo Yelp Zenefits
感谢您的反馈
样例

如下所示在3x3的网格中有一个障碍物:

[

  [0,0,0],

  [0,1,0],

  [0,0,0]

]

一共有2条不同的路径从左上角到右下角。

注意

m和n均不超过100

标签 Expand
动态规划数组
AC代码:
public class Solution {
    /**
     * @param obstacleGrid: A list of lists of integers
     * @return: An integer
     */
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        // write your code here
        int re[][]= obstacleGrid;
         re[0][0]= re[0][0]== 1 ? 0 : 1;
         for(int i=1;i<re.length;i++){
              re[i][0] = re[i][0]==1?0:re[i-1][0];
         }
         for(int j=1;j<re[0].length;j++){
              re[0][j] = re[0][j]==1?0:re[0][j-1];
         }
         for(int i=1;i<re.length;i++)
         {
              for(int j=1;j<re[i].length;j++){
                   re[i][j] = re[i][j]==1?0:re[i-1][j]+re[i][j-1];
              }
         }             
         return re[re.length-1][re[0].length-1];

    }
}


0 0
原创粉丝点击