llllmz

导航

63. 不同路径 IIc

int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridSize, int* obstacleGridColSize) {
    if(obstacleGridSize==0) return 0;
    int m=obstacleGridSize,n=*obstacleGridColSize;
    int** dp=(int**)malloc(sizeof(int*)*m);
    for(int i=0;i<m;i++) dp[i]=(int*)malloc(sizeof(int)*n);
    for(int i=0;i<m;i++){
        if(obstacleGrid[i][0]==1){
            for(;i<m;i++) dp[i][0]=0;
            break;
        }
        printf("%d",i);
        dp[i][0]=1;
    }
       printf("`1");
    for(int i=0;i<n;i++){
        if(obstacleGrid[0][i]==1){
            for(;i<n;i++) dp[0][i]=0;
            break;
        }
        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-17 19:42  神奇的萝卜丝  阅读(26)  评论(0)    收藏  举报