力扣------网格中的最小路径代价

力扣------网格中的最小路径代价_第1张图片

int minPathCost(int** grid, int gridSize, int* gridColSize, int** moveCost, int moveCostSize, int* moveCostColSize){
    int dp[gridSize][gridColSize[0]];
    for(int a=0;a<gridSize;a++){
        for(int b=0;b<gridColSize[0];b++){
            dp[a][b]=grid[a][b];
        }
    }
    for(int a=1;a<gridSize;a++){
        for(int b=0;b<gridColSize[0];b++){
            int min=100000;
            for(int c=0;c<gridColSize[0];c++){
                if(min>dp[a-1][c]+dp[a][b]+moveCost[grid[a-1][c]][b]){
                    min=dp[a-1][c]+dp[a][b]+moveCost[grid[a-1][c]][b];
                }
            }
            dp[a][b]=min;
        }
    }
    int min=100000;
    for(int a=0;a<gridColSize[0];a++){
        if(min>dp[gridSize-1][a]){
            min=dp[gridSize-1][a];
        }
    }
    return min;
}

你可能感兴趣的:(C/C++,leetcode,算法,职场和发展)