当前位置: 首页 > news >正文

Leetcode174.地下城游戏

题目


代码(首刷看解析 2024年5月6日)

class Solution {
public:// 动态规划int calculateMinimumHP(vector<vector<int>>& dungeon) {// dp[i][j]从(i,j)出发,到达终点所需要的最少血量int m = dungeon.size();int n = dungeon[0].size();vector<vector<int>> dp(m, vector<int>(n, 0));// dp[i][j] = max(0, min(dp[i + 1][j], dp[i][j + 1] - dungeon[i][j]));dp[m - 1][n - 1] = max(0, -dungeon[m - 1][n - 1]);for (int i = m - 2; i >= 0; i--) {dp[i][n - 1] = max(dp[i + 1][n - 1] - dungeon[i][n - 1], 0);}for (int j = n - 2; j >= 0; j--) {dp[m - 1][j] = max(dp[m - 1][j + 1] - dungeon[m - 1][j], 0);}for (int i = m - 2; i >= 0; i--) {for (int j = n - 2; j >= 0; j--) {dp[i][j] = max(0, min(dp[i + 1][j], dp[i][j + 1]) - dungeon[i][j]);}}return dp[0][0] + 1;}
};

代码(二刷自解 2024年8月12日)

class Solution {
public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m = dungeon.size();int n = dungeon[0].size();vector<vector<int>> dp(m, vector<int>(n, 0));dp[m - 1][n - 1] = max(0, -dungeon[m - 1][n - 1]);for (int i = m - 2; i >= 0; i--) {dp[i][n - 1] = max(dp[i + 1][n - 1] - dungeon[i][n - 1], 0);}for (int j = n - 2; j >= 0; j--) {dp[m - 1][j] = max(dp[m - 1][j + 1] - dungeon[m - 1][j], 0);}for (int i = m - 2; i >= 0; i--) {for (int j = n - 2; j >= 0; j--) {dp[i][j] = max(0, min(dp[i + 1][j], dp[i][j + 1]) - dungeon[i][j]);// cout<<"dp["<<i<<"]["<<j<<"]:"<<dp[i][j]<<" ";}// cout<<endl;}return dp[0][0] + 1;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 人工智能提示(prompt)工程入门
  • 汇编代码翻译为abs函数的调用
  • 【数据结构】关于树(二叉树)的基础理论知识,你知道吗???
  • 基于ICMP(Ping)的多线程网络通道监视程序(QT)开发
  • 【深度学习】注意力机制(Transformer)
  • adb Connection reset by peer的解决方法
  • xDIT 框架多GPU推理DIT PixArt扩散模型使用案例
  • Golang面试题四(并发编程)
  • 高等数学精解【8】
  • springmvc来实现Excel文件导入easyexcel
  • 在 vue3 中动态路由问题记录
  • 8个不可错过的高清视频素材网
  • Flink状态后端-Memory/Fs/RockDB
  • jetson nano远程调试说明
  • LangChain 推出 LangGraph Studio:首款用于可视化、交互和调试复杂代理应用的代理 IDE
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • cookie和session
  • gcc介绍及安装
  • java8 Stream Pipelines 浅析
  • JS数组方法汇总
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Python 反序列化安全问题(二)
  • Vue 动态创建 component
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 汉诺塔算法
  • 利用DataURL技术在网页上显示图片
  • 使用 Docker 部署 Spring Boot项目
  • 算法-插入排序
  • 小程序 setData 学问多
  • mysql面试题分组并合并列
  • Nginx实现动静分离
  • 带你开发类似Pokemon Go的AR游戏
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #pragma pack(1)
  • (11)MATLAB PCA+SVM 人脸识别
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (c语言+数据结构链表)项目:贪吃蛇
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Python第六天)文件处理
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (算法)硬币问题
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)WLAN定义和基本架构转
  • (译) 函数式 JS #1:简介
  • (转)Sql Server 保留几位小数的两种做法
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 8.0 中有哪些新的变化?
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core中如何集成RabbitMQ
  • .net FrameWork简介,数组,枚举
  • .NET gRPC 和RESTful简单对比
  • .Net Winform开发笔记(一)
  • .NET WPF 抖动动画
  • .Net6 Api Swagger配置