您的位置:首页 > 产品设计 > UI/UE

Unique PatUnique Paths II

2014-03-22 21:19 501 查看
class Solution {
public:
int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) {
if(obstacleGrid.size()==0)
return 0;
int wide=obstacleGrid.size();
int len=obstacleGrid[0].size();
vector<vector<int>>f(wide,vector<int>(len));
f[0][0]=1-obstacleGrid[0][0];
for(int i=1;i<len;i++)
if(obstacleGrid[0][i]==0&&f[0][i-1]!=0)
f[0][i]=1;
else
f[0][i]=0;
for(int j=1;j<wide;j++)
if(obstacleGrid[j][0]==0&&f[j-1][0]!=0)
f[j][0]=1;
else
f[j][0]=0;
for(int i=1;i<wide;i++)
for(int j=1;j<len;j++)
{
if(obstacleGrid[i][j]==1)
f[i][j]=0;
else
if(obstacleGrid[i-1][j]==1&&obstacleGrid[i][j-1]==1)
f[i][j]=0;
else
if(obstacleGrid[i-1][j]==1)
f[i][j]=f[i][j-1];
else
if(obstacleGrid[i][j-1]==1)
f[i][j]=f[i-1][j];
else
f[i][j]=f[i][j-1]+f[i-1][j];
}
return f[wide-1][len-1];
}
};
if else 真多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: