leetcode 174:地下城游戏

leetcode 174:地下城游戏_第1张图片

动态规划

int calculateMinimumHP(vector>& dungeon) {
    std::vector> dp(dungeon.size(),std::vector(dungeon[0].size()));
    int m=dungeon.size();
    int n=dungeon[0].size();

    dp[m-1][n-1]=max(1,1-dungeon[m-1][n-1]);

    for(int i=m-2;i>=0;i--){
        dp[i][n-1]=max(1,dp[i+1][n-1]-dungeon[i][n-1]);
    }

    for(int i=n-2;i>=0;i--){
        dp[m-1][i]=max(1,dp[m-1][i+1]-dungeon[m-1][i]);
    }

    for(int i=m-2;i>=0;i--){
        for(int j=n-2;j>=0;j--){
            int min=min(dp[i+1][j],dp[i][j+1]);
            dp[i][j]=max(1,min-dungeon[i][j]);
        }
    }
    return dp[0][0];
}

 

你可能感兴趣的:(leetcode)