Unique Paths II

来源:互联网 发布:Linux集群怎么安字体 编辑:程序博客网 时间:2024/05/20 21:19

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.

static int m[100][100];class Solution {public:    int uniquePathsWithObstacles(vector<vector<int>>& obs) {        int row =obs.size();        if(row == 0)        {            return 0;        }        int column= obs[0].size();        m[0][0]=obs[0][0]==0?1:0;        for(int i=1;i<row;++i)        {            if(m[i-1][0]==0 || obs[i][0]==1)            {                m[i][0]=0;            }            else            {                m[i][0]=1;            }        }        for(int i=1;i<column;++i)        {            if(m[0][i-1]==0 || obs[0][i]==1)            {                m[0][i]=0;            }            else            {                m[0][i]=1;            }        }        for(int i=1;i<row;++i)        for(int j=1;j<column;++j)        {            if(obs[i][j] == 1)            m[i][j]=0;            else            {                m[i][j]=m[i-1][j]+m[i][j-1];            }        }        return m[row-1][column-1];    }};

0 0
原创粉丝点击