llllmz

导航

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];
}

结果:

posted on 2024-03-11 21:18  神奇的萝卜丝  阅读(18)  评论(0)    收藏  举报