动态规划算法-路径问题:10.地下城游戏

题目链接:174. 地下城游戏(困难)

算法原理:

解法:动态规划

Java代码:

java 复制代码
import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-16
 * Time: 22:45
 */
class Solution {
    //174. 地下城游戏
    //看完算法原理后自己写的,第二遍过的,第一遍错在了遍历方向反了
    public int calculateMinimumHP(int[][] nums) {
        int m=nums.length,n=nums[0].length;
        int[][] dp=new int[m+1][n+1];
        for(int i=0;i<dp.length;i++)
            Arrays.fill(dp[i],Integer.MAX_VALUE);
        dp[m][n-1]=dp[m-1][n]=1;
        for(int i=m-1;i>=0;i--){
            for(int j=n-1;j>=0;j--){
                dp[i][j]=Math.min(dp[i+1][j],dp[i][j+1])-nums[i][j];
                dp[i][j]=Math.max(1,dp[i][j]);
            }
        }
        return dp[0][0];
    }
}
相关推荐
wadesir2 分钟前
Rust中的条件变量详解(使用Condvar的wait方法实现线程同步)
开发语言·算法·rust
tap.AI4 分钟前
RAG系列(二)数据准备与向量索引
开发语言·人工智能
阿蒙Amon17 分钟前
C#每日面试题-重写和重载的区别
开发语言·c#
是一个Bug20 分钟前
Java基础20道经典面试题(二)
java·开发语言
yugi98783821 分钟前
基于MATLAB实现协同过滤电影推荐系统
算法·matlab
TimberWill21 分钟前
哈希-02-最长连续序列
算法·leetcode·排序算法
Z_Easen24 分钟前
Spring 之元编程
java·开发语言
liliangcsdn29 分钟前
python下载并转存http文件链接的示例
开发语言·python
Morwit38 分钟前
【力扣hot100】64. 最小路径和
c++·算法·leetcode
我命由我1234538 分钟前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法