Leetcode 198 House Robber 动态规划
2016-03-01 19:55
232 查看
题意是强盗能隔个马抢马,看如何获得的价值最高
动态规划题需要考虑状态,阶段,还有状态转移,这个可以参考《动态规划经典教程》,网上有的下的,里面有大量的经典题目讲解
dp[i]表示到第i匹马时的最大价值是多少,
因此所有的dp[i] = max(dp[i-2]+nums[i],dp[i-1]) (其中dp[0] = nums[0] dp[1] = max(nums[0],nums[1]);
动态规划题需要考虑状态,阶段,还有状态转移,这个可以参考《动态规划经典教程》,网上有的下的,里面有大量的经典题目讲解
dp[i]表示到第i匹马时的最大价值是多少,
因此所有的dp[i] = max(dp[i-2]+nums[i],dp[i-1]) (其中dp[0] = nums[0] dp[1] = max(nums[0],nums[1]);
class Solution { public: int rob(vector<int>& nums) { vector<int> dp(nums.size(),0); if (nums.size() < 1) { return 0; } if (nums.size() < 2) { return nums[0]; } dp[0] = nums[0]; dp[1] = max(nums[0],nums[1]); for (int i = 2;i<dp.size();++i) { dp[i] = max(dp[i -2] + nums[i], dp[i-1]); } int ans = 0; for (int i = 0;i<dp.size();++i) { ans = max(ans, dp[i]); } return ans; } };
相关文章推荐
- Codeforces Round #343 (Div. 2) A
- 【Android实战】记录自学自己定义GifView过程,能同一时候支持gif和其它图片!【有用篇】
- 堆排序的java实现
- 第五届_小朋友排队
- 报文解析
- 两个Jsp网页间登陆页简单后台验证,并且防止未登录用户绕过登陆页
- SpringMVC源码解析- HandlerAdapter - ModelFactory(转)
- 2016年3月1日
- Android Socket 聊天工具(一个服务端实现多个客户端间通信)
- TabHost选项卡的 功能和用法
- 【Android开发高级实践】轻松帮你发现Bug(FindBugs在AndroidStudio上的应用)
- 设计模式入门之职责链模式Chain Of Responsibility
- 图文混排——用表情代替 “[文字]”显示
- 树状数组 线段树 模板
- 时间戳与时间的互转
- 有序二叉树的实现
- Linux 中的零拷贝技术
- UIScrollView的监听方法和定时器的使用
- 树状数组 线段树 模板
- NOJ-93-汉诺塔(三)