leecode第一百七十四题(地下城游戏)
生活随笔
收集整理的這篇文章主要介紹了
leecode第一百七十四题(地下城游戏)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
class Solution {
public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int len1=dungeon.size();if(len1==0)return 1;int len2=dungeon[0].size();if(len2==0)return 1;vector<int> res(len2,0);//只使用一個數(shù)組輔助空間for(int i=len1-1;i>=0;i--){for(int j=len2-1;j>=0;j--){if(i==len1-1&&j==len2-1)//初始化公主房間
{if(dungeon[i][j]<0)//如果公主房間<0,那想活著必須取絕對值+1res[j]=abs(dungeon[i][j])+1;elseres[j]=1;//負責(zé)為1即可
}else{int temp;//對于邊界和中間值,對比的數(shù)據(jù)是不同的if(i==len1-1)temp=res[j+1];else if(j==len2-1)temp=res[j];elsetemp=min(res[j],res[j+1]);//如果是中間的值,只需看右或下里面最小值即可if(dungeon[i][j]<0)//如果當(dāng)前房間掉血,就加上這個絕對值res[j]=temp+abs(dungeon[i][j]);else{if(temp-dungeon[i][j]>0)//如果不掉血且加上這個房間不多于后面需要res[j]=temp-dungeon[i][j];elseres[j]=1;//如果加血賊多,后面的房間完全沒問題
}}}}return res[0];}
};
分析:
動態(tài)規(guī)劃不一定等于遞歸
動態(tài)規(guī)劃還是從后往前思考比較好
轉(zhuǎn)載于:https://www.cnblogs.com/CJT-blog/p/10843380.html
總結(jié)
以上是生活随笔為你收集整理的leecode第一百七十四题(地下城游戏)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何将Excel文件转换WPS格式?
- 下一篇: 汇编实验三zxt