63. 不同路径 IIc

难点在初始化。
int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridSize, int* obstacleGridColSize) {
if(obstacleGrid[0][0]==1) return 0;
int m=obstacleGridSize,n=*obstacleGridColSize;
int** dp=(int**)malloc(sizeof(int*)*(m+4));
for(int i=0;i<m+4;i++) dp[i]=(int*)malloc(sizeof(int)*(n+4));
for(int i=0;i<m;i++){
if(obstacleGrid[i][0]==1){
for(int j=i;j<m;j++){
dp[j][0]=0;
}
break;
}else{
dp[i][0]=1;
}
}
for(int i=0;i<n;i++){
if(obstacleGrid[0][i]==1){
for(int j=i;j<n;j++){
dp[0][j]=0;
}
break;
}else{
dp[0][i]=1;
}
}
for(int i=1;i<m;i++){
for(int j=1;j<n;j++){
if(obstacleGrid[i][j]==1){
dp[i][j]=0;
}else{
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
}
return dp[m-1][n-1];
}
结果:

浙公网安备 33010602011771号