2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 龙与地下城游戏问题-Java:经典动态规划结合空间压缩解法

龙与地下城游戏问题-Java:经典动态规划结合空间压缩解法

时间:2021-04-20 18:27:59

相关推荐

龙与地下城游戏问题-Java:经典动态规划结合空间压缩解法

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击

package live.every.day.ProgrammingDesign.CodingInterviewGuide.RecursionAndDynamicPrograming;/*** 龙与地下城游戏问题** 【题目】* 给定一个二维数组map,含义是一张地图,例如,如下矩阵:* -2 -3 3* -5 -10 1* 0 30 -5* 游戏的规则如下:* 骑士从左上角出发,每次只能向右或向下走,最后到达右下角见到公主。* 地图中每个位置的值代表骑士要遭遇的事情。如果是负数,说明此处有怪兽,要让骑士损失血量。如果是非负数,代表此处有血瓶,能* 让骑士回血。* 骑士从左上角到右下角的过程中,走到任何一个位置时,血量都不能少于1。* 为了保证骑士能见到公主,初始血量至少是多少?根据map,返回初始血量。** 【难度】* 中等** 【解答】* 如果map大小为MxN,经典动态规划方法的时间复杂度为O(MxN),额外空间复杂度为O(MxN)。结合空间压缩之后可以将额外空间复杂* 度降至O(min{M,N})。空间压缩的原理请参考“矩阵的最小路径和”问题,这里不再详述。** 请参看如下代码中的minHP2方法。** @author Created by LiveEveryDay*/public class DungeonsAndDragons2 {

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。