【leetcode】63. 不同路径 II

 

int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridSize, int* obstacleGridColSize){
    double* arr=(double*)calloc(*obstacleGridColSize,sizeof(double));
    arr[(*obstacleGridColSize)-1]=1;
    int i, r=obstacleGridSize;
    if(obstacleGrid[0][0]==1 || obstacleGrid[r-1][(*obstacleGridColSize)-1]==1)
        return 0;
    while(--r>=0){
        for(i=(*obstacleGridColSize)-1; i>=0; i--)
            arr[i]+= (obstacleGrid[r][i])?-arr[i] :(i+1<*obstacleGridColSize)?arr[i+1] :0;
    }
    return (int)*arr;
}
int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridSize, int* obstacleGridColSize){
    double* arr=(double*)calloc(*obstacleGridColSize,sizeof(double));
    arr[(*obstacleGridColSize)-1]=1;
    int i, r=obstacleGridSize;
    if(obstacleGrid[0][0]==1 || obstacleGrid[r-1][(*obstacleGridColSize)-1]==1)
        return 0;
    while(--r>=0){
        for(i=(*obstacleGridColSize)-1; i>=0; i--)
            arr[i]+= (obstacleGrid[r][i])?-arr[i] :(i+1<*obstacleGridColSize)?arr[i+1] :0;
    }
    return (int)*arr;
}

 

posted @ 2020-12-11 16:26  温暖了寂寞  阅读(79)  评论(0编辑  收藏  举报