动态规划算法-路径问题: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];
    }
}
相关推荐
唯道行35 分钟前
计算机图形学·20 绘制(Implementation)1与Cohen-Sutherland算法
人工智能·算法·计算机视觉·计算机图形学·opengl
严文文-Chris36 分钟前
反向传播算法是什么?和神经网络的关系?
人工智能·神经网络·算法
liu****37 分钟前
11.字符函数和字符串函数(二)
c语言·开发语言·数据结构·c++·算法
@小白鸽38 分钟前
1.2.1创建型设计模式
开发语言·设计模式
沐知全栈开发41 分钟前
R 绘图 - 函数曲线图
开发语言
qq_5486749344 分钟前
Go的env和bashrc的GOROOT配置不同
linux·开发语言·golang
freexyn1 小时前
Matlab自学笔记六十九:多项式求值、求根、积分和求导
开发语言·笔记·matlab
灵犀坠1 小时前
前端高频知识点汇总:从手写实现到工程化实践(面试&开发双视角)
开发语言·前端·javascript·tcp/ip·http·面试·职场和发展