Dungeon Game
来源:互联网 发布:编程数字金字塔 编辑:程序博客网 时间:2024/06/07 10:38
Dungeon Game - LeetCode
题目:
这又是一道动态规划的题目。
一开始的想法是用一个二维数组记录在(i,j)位置所能剩下的最大生命值,但是这是不对的。
后来想到了另一种方法,从右下角开始推,在(i,j)位置记录所需要的最小生命值。然后往起点推。
在走到最后一格后,只需要剩下一滴血就可以,虽然事实上可能剩下很多血,但是剩一滴血是满足条件的最小血量,这是个必要条件。往回推的时候也是每次都找到一个不死的必要血量,然后只要保持这个必要血量就能够得出在起点所需要的最少血量。
class Solution {public: int calculateMinimumHP(vector<vector<int>>& dungeon) { int m = dungeon.size(); int n = dungeon[0].size(); vector< vector<int> > a(m+1, vector<int>(n+1,9999)); a[m][n-1] = 1; a[m-1][n] = 1; for (int i = m-1; i >= 0; i--) { for (int j = n-1; j >= 0; j--) { int temp = min(a[i+1][j], a[i][j+1]); if (dungeon[i][j] < temp) { a[i][j] = temp-dungeon[i][j]; } else { a[i][j] = 1; } } } return a[0][0]; }};
阅读全文
0 0
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- Dungeon Game
- PCL显示函数的例子
- H5 语音合成播报功能
- 23种设计模式之-----代理模式(Proxy Pattern)
- HDOJ 2156 分数矩阵(水题)
- 【Python】类
- Dungeon Game
- Java基础之IO流
- Java时间获取
- java入门基础-01
- SpringBoot微框架
- Linux X Window 与命令行的切换
- 排序算法之冒泡排序--Java语言
- 操作系统-首次适应算法
- [Splay]BZOJ 1208——[HNOI2004]宠物收养所