标签:
动态规划问题,定义个数组,将现阶段的所有走过的步数的最优解保存到数组中对应下标处。
在进行下一步的时候,通过调用已知数组和当前节点的情况进行讨论,做出决策。
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 };
标签:
原文地址:http://www.cnblogs.com/aguai1992/p/4629565.html