House Robber

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

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

 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 };
原文地址:https://www.cnblogs.com/aguai1992/p/4629565.html