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

网站怎么维护更新深圳建设工程交易网站

网站怎么维护更新,深圳建设工程交易网站,网站不收录 域名问题,成都房地产市场地下城游戏 题目链接:174. 地下城游戏 状态表示: 按照以往题的表示,dp[i][j]表示:从起点(0,0)位置到达(i,j)位置时,所需的最小初始健康值。但是…

地下城游戏

题目链接:174. 地下城游戏

状态表示:
按照以往题的表示,dp[i][j]表示:从起点(0,0)位置到达(i,j)位置时,所需的最小初始健康值。但是如果这么去表示,不仅要考虑到达(i,j)位置的最小初始健康值,由于魔法球的存在,还需要考虑到达(i,j)位置时的健康值,因为魔法球会对算后续位置的最小初始健康值产生影响

下面用题目中的示例1为例,演示:
在这里插入图片描述
由此可知,到达魔法球位置所需的最低初始健康值和上一次的最低初始健康值保持一致,而魔法球会增加健康值,这就会对后面的结果产生影响,因此我们不仅要考虑到达(i,j)位置的最小初始健康值,还需要考虑到达(i,j)位置时的健康值,以保证后续结果的正确性

因此,我们可以试着用dp[i][j]表示:以(i,j)位置为起点,到达终点位置时,所需的最小健康值。当(i,j)位置是魔法球时,可以用之前的dp[i+1][j]和dp[i][j+1]中的最小健康值减去治疗量,就能得到当前的位置到达终点位置时所需的最小健康值dp[i][j](注意:dp[i][j]不能小于0,最小值为1);当(i,j)位置是恶魔时,也是这样处理,实际上就是加上了需要扣除的健康值
在这里插入图片描述
通过这种状态表示,我们最终能够求得结果!

总结:

  1. 这道题的难点在于怎么去处理健康值增加的问题,健康值的增加不能为之前的损失提供帮助,只会对后续有帮助
  2. 如果按照第一种状态表示,dp[i][j]仅仅只表示了从(0,0)位置到达(i,j)位置所需的最小初始健康值,而由于魔法球的存在,导致后续的健康值会增加,因此我们还需要去记录当前位置的健康值,以保证后续计算最小初始健康值的正确性
  3. 如果按照第二种状态表示,dp[i][j]表示从(0,0)位置出发,按照最优路径到达(i,j)位置时,还需要剩余的最小健康值(为了到达终点后,健康值为1)。即dp[i][j]不仅表示了从(i,j)位置到达终点位置所需的最小初始健康值,还表示了从(0,0)位置出发到达(i,j)位置时,所需剩余的最小健康值(即当前健康值)
  4. 比较两种状态表示,可知,第二种表示更合理,更方便后续的填表

状态转移方程
dp[i][j] = min(dp[i+1][j],dp[i][j+1])-d[i][j],dp[i][j] = max(1, dp[i][j])

初始化
创建表时,多创建一行(第m行)和一列(第n列),除dp[m][n-1] = 1(dp[m-1][n] 也可初始化为1,表示救出公主后还需剩余1点健康值),其他都初始化为正无穷(以防对填表产生影响)

填表顺序
从下往上,每一行从右往左

返回值
dp[0][0]

实现代码

class Solution {public int calculateMinimumHP(int[][] dungeon) {//1.创建dp表int m = dungeon.length;int n = dungeon[0].length;int[][] dp = new int[m+1][n+1];//2.初始化for(int row = 0; row < m+1; row++) {dp[row][n] = Integer.MAX_VALUE;}for(int col = 0; col < n+1; col++) {dp[m][col] = Integer.MAX_VALUE;}dp[m][n-1] = 1;//3.填表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]) - dungeon[i][j];dp[i][j] = Math.max(1, dp[i][j]);}}//4.返回值return dp[0][0];}
}
http://www.yayakq.cn/news/667506/

相关文章:

  • 平面网站设计重庆工信部网站
  • 专业的佛山网站建设价格池州哪家做网站
  • 专门做面条菜谱的网站什么是分类信息网站营销
  • 建设企业学习网站excel免费模板网站
  • 赣州网站制作培训网站解析怎么做
  • 怎么开发一个自己的网站建站公司塔山双喜
  • google 网站 提交华为手机网站建设策划书
  • 上街区网站建设网站建设涉及的标准
  • 做网站的流程视频教程建筑工程168网
  • 哪家公司网站建设好点试玩平台怎么做网站
  • 威海哪家网站做的好辽宁网络推广
  • 绵阳做手机网站中文网站什么意思
  • 个人建立网站要多少钱太原seo公司网站
  • 网站模板设计定制化服务深圳福田最新消息今天
  • 婚纱网站目录优化做网站 智域大连
  • 佛山企业建网站怎样才能在百度上发布信息
  • 中山市 有限公司网站建设昆明做网站做的好的公司有哪些
  • html代码查看网站优化营销
  • 好看网站给别人开发一个网站多少钱
  • 摄影比赛投稿网站设计公司设计
  • 中山营销网站建设联系方式wordpress需要Apache吗
  • 岳阳网站建设哪里有开发网站最后进行的步骤是什么
  • 网站建设 域名 数据库seo学徒
  • 我做网站动态ip建设网站
  • 怎么早网站上放广告山西+网站建设
  • win10虚拟目录 做网站佛山债优化
  • 网站后台视频网站建设公司 深圳
  • 创建游戏网站高级网页设计师培训班
  • 社保局网站建设意义临沂搜索引擎网站推广
  • 做网站的流程图下载浏览器