174. 地下城游戏

174. 地下城游戏

思路

逆向思维。

cpp 复制代码
class Solution {
public:
    int calculateMinimumHP(vector<vector<int>>& dungeon) {
        // 逆向思维。
        // 这就是,我要进行的是
        int n = dungeon.size();
        int m = dungeon[0].size();
        vector<vector<int>> dp(n, vector<int>(m, 0));
        dp[n-1][m-1] = 0;
        for(int i = n-1;i>=0;i--){
            for(int j = m-1;j>=0;j--){
                if(i == n-1 and j == m-1){
                    dp[i][j] = max(1,1-dungeon[i][j]);
                }else if(i == n-1){
                    dp[i][j] = max(1,dp[i][j+1]-dungeon[i][j]);
                }else if(j == m-1){
                    dp[i][j] = max(1, dp[i+1][j]-dungeon[i][j]);
                }else{
                    dp[i][j] = max(min(dp[i+1][j], dp[i][j+1])-dungeon[i][j], 1);
                }
            }
        }
        return dp[0][0];
    }
};
相关推荐
Jerryhut几秒前
sklearn函数总结十二 —— 聚类分析算法K-Means
算法·kmeans·sklearn
Swift社区21 分钟前
LeetCode 453 - 最小操作次数使数组元素相等
算法·leetcode·职场和发展
hoiii18726 分钟前
LR算法辅助的MIMO系统Zero Forcing检测
算法
糖葫芦君28 分钟前
Lora模型微调
人工智能·算法
小李小李快乐不已37 分钟前
二叉树理论基础
数据结构·c++·算法·leetcode
仰泳的熊猫41 分钟前
1149 Dangerous Goods Packaging
数据结构·c++·算法·pat考试
_OP_CHEN1 小时前
【算法基础篇】(三十七)图论基础之多源最短路:Floyd 算法吃透所有点对最短路径!
算法·蓝桥杯·图论·算法竞赛·floyd算法·acm/icpc·多源最短路
Web极客码1 小时前
如何选择最适合的内容管理系统(CMS)?
java·数据库·算法
程序员三明治1 小时前
【动态规划】01背包与完全背包问题详解,LeetCode零钱兑换II秒解,轻松解力扣
算法·leetcode·动态规划·java后端·01背包·完全背包·零钱兑换
自由生长20241 小时前
大数据计算框架-流式计算的Join
算法