leetcode174. Dungeon Game

// learn from https://discuss.leetcode.com/topic/6912/c-dp-solution
'''
class Solution {
public:
    int calculateMinimumHP(vector<vector<int>>& dungeon) {
        int m = dungeon.size(),n = dungeon[0].size();
        vector<vector<int> >dp(m+1,vector<int>(n+1,INT_MAX));
        dp[m-1][n] =1;
        dp[m][n-1] = 1;
        for(int i = m-1;i>=0;i--){
            for(int j = n-1;j>=0;j--){
                dp[i][j] = min(dp[i][j+1],dp[i+1][j]) - dungeon[i][j];
                dp[i][j] = max(dp[i][j],1);
            }
        }
        return dp[0][0];
    }
};
'''

 

posted @ 2016-12-26 01:14  zeroArn  阅读(177)  评论(0编辑  收藏  举报