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];
    }
};
相关推荐
QiLinkOS13 小时前
QiLink OS的失败数据共享平台的运作模式是否适用于所有行业?
android·开发语言·人工智能·算法·重构·开源
C++ 老炮儿的技术栈14 小时前
MFC 自定义纯色居中文字进度条控件
c语言·数据库·c++·windows·算法·c·visual studio
researcher-Jiang14 小时前
Manacher算法学习与应用
c++·学习·算法
码完就睡14 小时前
数据结构——串的模式匹配算法(BF算法、KMP算法)
数据结构·算法
tachibana214 小时前
hot100 排序链表(148)
java·数据结构·算法·leetcode·链表
林泽毅14 小时前
Qwen3.5 DPO 模型对齐实战(pytrio训练版)
人工智能·python·算法
imuliuliang14 小时前
算法中的随机化思想及其复杂度收益评估的技术7
算法
不能跑的代码不是好代码14 小时前
二叉树从基础概念到LeetCode实战
算法·leetcode
凯瑟琳.奥古斯特15 小时前
二分查找解力扣1011最优运载能力
开发语言·c++·算法·leetcode·职场和发展
学计算机的计算基15 小时前
二叉树算法下篇:递归核心技巧与高频面试题详解
java·笔记·算法