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];
    }
};
相关推荐
CoderYanger12 小时前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节
TL滕12 小时前
从0开始学算法——第八天(堆排序)
笔记·学习·算法·排序算法
Ayanami_Reii12 小时前
进阶数据结构-AC自动机
数据结构·算法·动态规划·字符串·ac自动机
报错小能手12 小时前
数据结构 AVL二叉平衡树
数据结构·算法
l1t13 小时前
利用Duckdb求解Advent of Code 2025第5题 自助餐厅
数据库·sql·mysql·算法·oracle·duckdb·advent of code
List<String> error_P13 小时前
C语言枚举类型
算法·枚举·枚举类型
liu****13 小时前
20.预处理详解
c语言·开发语言·数据结构·c++·算法
努力学算法的蒟蒻13 小时前
day26(12.6)——leetcode面试经典150
算法·leetcode·面试
代码游侠13 小时前
数据结构——哈希表
数据结构·笔记·学习·算法·哈希算法·散列表
FY_201813 小时前
Stable Baselines3中调度函数转换器get_schedule_fn 函数
开发语言·人工智能·python·算法