class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int> > &a) {
int row=a.size(),col=a[0].size();
vector<vector<int>>dp(row,vector<int>(col,0));
for(int i=0;i<row;i++)
{
if(a[i][0]!=1)dp[i][0]=1;
else break;
}
for(int j=0;j<col;j++)
{
if(a[0][j]!=1)dp[0][j]=1;
else break;
}
for(int i=1;i<row;i++)
{
for(int j=1;j<col;j++)
{
if(a[i][j]==1)dp[i][j]=0;
else dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[row-1][col-1];
}
};
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int> > &a) {
if(a.size()==0)return 0;
int row=a.size(),col=a[0].size();
if(a[0][0]==1||a[row-1][col-1]==1)return 0;
vector<int>dp(col,0);
dp[0]=1;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if(a[i][j]==1)dp[j]=0; //这里要分开写,为1的时候此处不同,要更新
else if(j)dp[j]=dp[j]+dp[j-1];
}
}
return dp[col-1];
}
};
网友评论