174. Dungeon Game
https://leetcode.com/problems/dungeon-game/description/
/*
* @lc app=leetcode id=174 lang=cpp
*
* [174] Dungeon Game
*/
class Solution {
public:
int calculateMinimumHP(vector<vector<int>>& dungeon) {
const int M = dungeon.size(), N = M == 0 ? 0 : dungeon[0].size();
vector<vector<int>> dp(M + 1, vector<int>(N + 1, INT_MAX));
dp[M][N - 1] = dp[M - 1][N] = 1;
for (int i = M - 1; i >= 0; --i) {
for (int j = N - 1; j >= 0; --j) {
dp[i][j] = max(1, min(dp[i + 1][j], dp[i][j + 1]) - dungeon[i][j]);
}
}
return dp[0][0];
}
};
Last updated