麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Leetcode 198. House Robber

2019-11-10 20:02:48
字體:
來源:轉載
供稿:網友

You are a PRofessional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night.

Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

s思路: 1. 用dp.從“不能搶相鄰兩家的錢”這個條件入手,例如:

num 5 7 10 2 9 13
cur 5 7 15 15 24 28
pre 0 5 7 15 15 24

如上圖,cur表示當前位置時搶或不搶的最大值,pre表示前一個位置搶或不搶中最大。那么第二天當前位置有7,這就要比較了:如果搶,則總共就是7+上一個位置的pre,即:7+0=7;不搶,則就是上一個位置的cur=5,max(7,5)=7,遞推關系:pre=cur, cur=max(cur,pre+nums[i])。 2. 為什么這類題可以用dp?首先,求最值問題,很多都可以考慮用dp,這個還不關鍵。最關鍵的是,搶到最多錢是個過程,且在過程中要一直保存搶到做多,就應為這個,我們可以把全程搶最多分割成n個小任務。又根據條件“不能搶相鄰兩家的錢”,這些任務之間還有聯系,根據這個關系來得到遞推關系即可! 3. “不能搶相鄰兩家的錢”,根據這個條件,說明只需要維護兩個狀態,當前位置和前一個位置的最大,然后不斷更新當前和前一個位置。

//方法1:dpclass Solution {public: int rob(vector<int>& nums) { // if(nums.empty()) return 0; int pre=0,cur=nums[0]; for(int i=1;i<nums.size();i++){ int tmp=max(cur,pre+nums[i]); pre=cur; cur=tmp; } return cur; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩大片在线观看 | 亚洲午夜不卡 | 黄色网战入口 | 欧美wwwsss9999| www视频免费在线观看 | 91精品国产日韩91久久久久久360 | 久久综合一区二区 | 久草资源在线观看 | 369看片你懂的小视频在线观看 | 亚洲欧美一区二区三区在线观看 | 91,视频免费看 | 欧美日韩国产一区二区三区在线观看 | 亚洲午夜视频在线 | 色婷婷一区二区三区 | 91精品国产综合久久久欧美 | 成人做爰www免费看 欧美精品免费一区二区三区 | 国产午夜亚洲精品午夜鲁丝片 | 中国杭州少妇xxxx做受 | 久久网综合 | 在线中文字幕播放 | 精品一区二区久久久 | 国产91小视频在线观看 | 午夜生活理论片 | 欧美日韩免费一区 | 欧美jizzhd极品欧美 | jizzzzxxxxx | 黄色特级一级片 | 免费在线观看午夜视频 | 欧美一级黄视频 | 国产精品久久久久久久久久尿 | 久久国产成人精品国产成人亚洲 | 性插视频 | 国产精品美女一区二区 | 婷婷久久影院 | 久久精品一区二区三区国产主播 | 国内一区 | 少妇色诱麻豆色哟哟 | 视频一区二区三区在线播放 | 亚州视频在线 | 久久国产成人精品国产成人亚洲 | 国产精品啪一品二区三区粉嫩 |