Leetcode 174. 地下城游戏(DAY 66) ---- 动态规划学习期(很久不刷力扣感觉状态不太好 要调整了 做两道)

原题题目

在这里插入图片描述


代码实现(首刷部分看解部分自解)

class Solution {
    
    
public:
    int calculateMinimumHP(vector<vector<int>>& dungeon) {
    
    
        int rows = dungeon.size(),lines = dungeon[0].size(),i,j;
        vector<vector<int>> dp(rows,vector<int>(lines,0));
        for(i=rows-1;i>=0;i--)
        {
    
    
            for(j=lines-1;j>=0;j--)
            {
    
    
                if(i == rows-1 && j==lines-1)   dp[i][j] = fmin(dp[i][j],dungeon[i][j]);
                else if(i == rows-1) dp[i][j] = fmin(dp[i][j],dp[i][j+1] + dungeon[i][j]);
                else if(j == lines-1)    dp[i][j] = fmin(dp[i][j],dp[i+1][j] + dungeon[i][j]);
                else    dp[i][j] = fmin(dp[i][j],fmax(dp[i+1][j],dp[i][j+1])+dungeon[i][j]);
            }
        }
        return abs(dp[0][0])+1;
    } 
};

猜你喜欢

转载自blog.csdn.net/qq_37500516/article/details/115070877
今日推荐