62.不同路径
int uniquePaths(int m, int n){
int dp[m][n];
int i,j;
for(i=0;i<m;i++) dp[i][0] = 1;
for(j=0;j<n;j++) dp[0][j] = 1;
for(i =1;i<m;i++)
{
for(j=1;j<n;j++)
{
dp[i][j] = dp[i-1][j]+dp[i][j-1];
}
}
return dp[i-1][j-1];
}
63. 不同路径 II
int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridSize, int* obstacleGridColSize){
int m = obstacleGridSize,n = obstacleGridColSize[0];
int i,j;
int dp[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
dp[i][j]=0;
}
}
if(obstacleGrid[0][0]==1||obstacleGrid[m-1][n-1]==1)
{
return 0;
}
for(i = 0;i<m;i++)
{
if(obstacleGrid[i][0]==0) dp[i][0]=1;
else break;
}
for(j = 0;j<n;j++)
{
if(obstacleGrid[0][j]==0) dp[0][j]=1;
else break;
}
for(i = 1;i<m;i++)
{
for(j = 1;j<n;j++)
{
if(obstacleGrid[i][j]==0)
dp[i][j]=dp[i-1][j]+dp[i][j-1];
else continue;
}
}
return dp[m-1][n-1];
}