Unique Path II--LeetCode

来源:互联网 发布:可以注销淘宝店铺吗 编辑:程序博客网 时间:2024/06/05 06:47

题目:

Follow up for "Unique Paths":

Now consider if some obstacles are added to the grids. How many unique paths would there be?

An obstacle and empty space is marked as 1 and 0 respectively in the grid.

For example,

There is one obstacle in the middle of a 3x3 grid as illustrated below.

[  [0,0,0],  [0,1,0],  [0,0,0]]

The total number of unique paths is 2.

Note: m and n will be at most 100.

思路:对于有障碍的坐标,将到达这个位置的路数标记为0即可

    #include <iostream>      #include <vector>      using namespace std;            int UniquePath(int m,int n,int line ,int row)      {          int i,j;          vector<vector<int> > path;          for(i=0;i<m;i++)          {              vector<int> vec(n,0);              path.push_back(vec);          }                    for(i=0;i<m;i++)              path[i][0] = 1;          for(i=0;i<n;i++)              path[0][i] = 1;                    for(i=1;i<m;i++)              for(j=1;j<path[0].size();j++)                  if(i ==line && j == row)                      path[i][j] = 0;                  else                      path[i][j] = path[i-1][j] +path[i][j-1];          for(i=0;i<m;i++)          {              for(j=0;j<path[0].size();j++)                  cout<<path[i][j]<<" ";              cout<<endl;          }          return path[m-1][n-1];      }      int main()      {          cout<<UniquePath(3,3,1,1)<<endl;          return 0;      }  

这里需要注意的那个障碍的点是按照一个标准数组的位置来说的。

0 0