书籍龙与地下城游戏问题(4)0527

题目:

给定一个二维数组map。含义是一张地图,例如,如下矩阵:

-2        -3        3

-5        -10       1

0        30        -5

游戏的规则如下:

骑士从左上角出发,每次只能向右或向下走,最后到达右下角见到公主。

地图中每个位置的值代表骑士要遭遇的事情,如果是负数,说明此处有怪兽,要让骑士损失血量。如果是非负数,代表此处有血瓶,能让骑士回血。

骑士从左上角到右下角的过程中,走到任何一个位置时,血量都不能少于1。

为了保证骑士能见到公主,初始血量至少是多少?根据map,返回初始血量。

定义和地图代傲一样的矩阵,记为dp,dp[i][j]的含义是如果骑士要走上位置(i,j),并且从该位置选一条最优的路径,最后走到右下角,骑士起码应该具备的血量。根据dp的定义,我们最终需要的是dp[0][0]的结果。

dp[i][j]有两个选择向右或者是向下。

public int minHP1(int[][] m){if(m == null || m.length ==  0 || m[0] == null || m[0].length == 0){return 1;}//因为整体要算dp[0][0]的值,所以计算初始化最后一行所有的列的值,循环的时候从//最后一行开始就行int row = m.lenght;int col = m[0].length;int[][] dp = new int[row--][col--];//下面的row和col已经做了减减处理dp[row][col] = m[row][col] > 0 ? 1 : -m[row][col] + 1;for(int j = col -1; j>=0;j--){dp[row][j] = Math.max(dp[row][j+1] - m[row][j],1);  }int right = 0;int down = 0;for(int i = row -1;i>=0;i--){dp[i][col] = Math.max(dp[i+1][col] - m[i][col],1);for(int j=col-1;j>=0;j--){right = Math.max(dp[i][j+1] - m[i][j],1);down = Math.max(dp[i+1][j] - m[i][j],1);dp[i][j] = Math.min(right,down);}}return dp[0][0];
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web3 游戏周报(5.19 - 5.25)

【5.19 - 5.25】Web3 游戏行业动态: Arbitrum 已开启 “2 亿枚 ARB 游戏催化剂计划”的提案投票。 STEPN 在官方 X 宣布将推出全新社交健身应用 STEPN GO。 Oasys 正式推出《足球小将》漫改 Web3 游戏《Captain Tsubasa-RIVALS-》。 Gala Games :已销…

❤职场小心得❤

在职场中,我深刻地认识到了沟通与合作的重要性。在团队中,每个人都有自己的专业知识和技能,只有通过良好的沟通和合作,才能将每个人的优势结合起来,共同完成任务。 首先,沟通是职场中不可或缺的能力。有效的…

华为交换机基础实验----VLAN基础

交换机篇实验: 给交换机创建VLAN 1.单个VLAN的创建 [S]vlan 10 查看的方法:dis vlan 2.批量创建vlan的方法 Vlan b 20 30 40 连续创建三个vlan,分别为vlan20 vlan30和vlan40 [SONY-S1-vlan10]vlan b 20 30 40 3.批量创建连续的vlan&#xf…

React的生命周期总结

React组件的生命周期可以概述为几个关键阶段:挂载(Mounting)、更新(Updating)、卸载(Unmounting),以及错误处理。随着React的发展,特别是引入Hooks之后,经典类…

Vue3的watch监视

watch watch用于观察和响应组件中数据变化。 在Vue 3中,watch属性不仅可以用于监视Vue实例数据的变化,并在数据发生变化时执行相应的操作;并且可以在监视数据变化的同时,在变化时执行回调函数,从而实现对数据的监听和…

【Qt Creator】跨平台的C++图形用户界面应用程序开发框架---QT

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1.互联网的核心岗位以及职…

宝塔下新增站点 No Input File Specified.错误修复

今天明月收到了一个购买【站长必备在线工具源码含上百款工具-博客优化修复版】用户的求助,在宝塔里新增网站部署好工具源码后,访问出现“No input file specified.”的提示。其实出现这个提示一般都是 PHP 文件无法被解析造成的。 简单排查了一下宝塔相关…

MySQL数据库语法(二)

一、数据库的创建 创建数据库CRATE DATABASE语法&#xff1a;CREATE DATABASE [IF NOT EXISTS]数据库名;功能&#xff1a;用给定的名字创建一个数据库如果数据库已经存在&#xff0c;发生一个错误。查看创建数据库&#xff1a;SHOW CREATE DATABASE <数据库名>&#xff…

疯狂“造人”!美国两党共推新法案,5年培养100万AI及量子人才

当前&#xff0c;全球量子计算人才的短缺已成为制约该领域快速发展的关键瓶颈。 为了解决量子计算人才短缺的问题&#xff0c;各国政府和企业采取了积极措施&#xff0c;加大了对量子教育和培训的投入。根据美国参议院官网消息&#xff0c;2024年5月23日&#xff0c;美国两党议…

Java原生JDBC概览

Java原生JDBC概览 一、是什么&#xff1f; JDBC是Java DataBase Connectivity的缩写&#xff0c;它是Java程序访问数据库的标准接口。 Java代码并不是直接通过TCP连接去访问数据库&#xff0c;而是通过JDBC接口来访问&#xff0c;而JDBC接口则通过JDBC驱动来实现对数据库的访…

【算法】位运算——常见位运算基础操作总结

位运算基础操作总结&#xff0c;包括基础运算符 修改某位bit位 目录 1.基础位运算符2.按位基础操作1.给一个数 n&#xff0c;确定其二进制的第 x 位是 0/12.将一个数 n 的二进制标识的第 x 位修改成 13.将一个数 n 的二进制标识的第 x 位修改成 04.提取一个数 n 二进制中最右侧…

记录一次flink代码优化

背景介绍 业务中有用到flink读取mysql数据,然后实时处理回写到mysql和doris供c端使用,代码的大体逻辑都是1.创建执行环境2.写需要使用到表的flinksql ddl语句3.通过flink sql 写核心的业务逻辑4.将sql处理的结果通过toRetractStream来转换成一个可撤回流5.对这个流进行其他处理…

什么是住宅IP代理?为什么需要家庭 IP 代理

家庭代理 IP 允许您选择特定位置&#xff08;国家、城市或移动运营商&#xff09;并作为代理上网该区域的真实用户。住宅代理 IP 可以定义为保护用户免受一般网络流量影响的中介。它们在隐藏您的 IP 地址的同时充当缓冲区。住宅代理 IP 是服务提供商分配给用户的替代 IP 地址。…

EasyCode生成的SQL语句中无逗号分隔

EasyCode生成的SQL语句中无逗号分隔 EasyCode是一款非常好用的插件&#xff0c;可以帮助我们生成相关的一些代码&#xff0c;但是在生成SQL对应的xml文件之后&#xff0c;发现语句中多个字段之间没有逗号分隔&#xff0c;而是直接连在了一起。接下来&#xff0c;让我们一起去解…

Vue如何实现鼠标悬浮时,展示与隐藏弹窗的功能

如果你需要鼠标在元素和弹窗上时保持弹窗显示&#xff0c;而鼠标离开这两者时隐藏弹窗&#xff0c;你可以使用一个稍微复杂的逻辑来处理鼠标的进入和离开事件。 这通常涉及到延时关闭弹窗&#xff0c;以便给用户足够的时间从元素移动到弹窗上&#xff0c;而不触发弹窗关闭。以…

【论文解读】Performance of AV1 Real-Time Mode

论文下载地址:Performance of AV1 Real-Time Mode 时间:2020.10 级别:IEEE 作者:Ludovic Roux 摘要 背景:COVID-19疫情增加了对数字互动的需求,使得实时或低延迟编解码器变得更加重要。现状:大多数编解码器,包括AV1,主要关注于编码效率,这是视频点播(VOD)的主要改…

授人以渔 选购篇十四:电动车(电动自行车)选购要点

文章目录 系列文章新国标和上牌电池&#xff1a;锂电池电机&#xff1a;无刷直流电机刹车&#xff1a;优选前后双碟刹轮胎&#xff1a;真空轮胎品牌其他 系列文章 授人以渔 选购篇一&#xff1a;信用卡选购要点 授人以渔 选购篇二&#xff1a;冰箱选购要点 授人以渔 选购篇三&…

【传知代码】私人订制词云图-论文复现

文章目录 概述原理介绍核心逻辑1、选取需要解析的txt文档2、选取背景图明确形状3、配置停用词4、创建分词词典&#xff0c;主要解决新的网络热词、专有名词等不识别问题 技巧1、中文乱码问题&#xff0c;使用的时候指定使用的文字字体2、更换背景图3、词库下载以及格式转换方式…

多线程编程(12)之HashMap1.8源码分析

之前已经分析过了一版1.7版本的HashMap&#xff0c;这里主要是来分析一下1.8HashMap源码。 一、HashMap数据结构 HashMap 是一个利用散列表&#xff08;哈希表&#xff09;原理来存储元素的集合&#xff0c;是根据Key value而直接进行访问的数 据结构。 在 JDK1.7 中&#xff…

内网穿透端口映射内外网反弹 shell 回顾

内网穿透&端口映射&内外网反弹 shell 回顾 内网概念 我们常说的内网&#xff0c;一般指的是非公有 IPv4 地址的网络比如学校机房里的电脑一般为私有网络&#xff0c;家里的网络也是私有网络 私有网络的范围与划分 ipaddressareaA 类地址10.0.0.0&#xff5e;10.255.…