首页 > 其他 > 详细

House Robber

时间:2015-07-08 12:24:36      阅读:310      评论:0      收藏:0      [点我收藏+]

动态规划问题,定义个数组,将现阶段的所有走过的步数的最优解保存到数组中对应下标处。

在进行下一步的时候,通过调用已知数组和当前节点的情况进行讨论,做出决策。

 1 class Solution {
 2 public:
 3     int rob(vector<int>& nums) {
 4         int n=nums.size();
 5         if(n==0)
 6             return 0;
 7         else if(n==1)
 8             return nums[0];
 9         int res;
10         vector<int> tempNums(n,0);
11         tempNums[0]=nums[0];
12         tempNums[1]=max(nums[0],nums[1]);
13         for(int i=2;i<n;i++)
14         {
15             tempNums[i]=max(tempNums[i-2]+nums[i],tempNums[i-1]);
16         }
17         return tempNums[n-1];
18     }
19     int max(int a,int b)
20     {
21         if(a>b)
22             return a;
23         else
24             return b;
25     }
26     
27 };

 

House Robber

原文:http://www.cnblogs.com/aguai1992/p/4629565.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!