Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. class Solution {
  2. public:
  3. int rob(vector<int>& nums) {
  4. auto n=nums.size();
  5. if(nums.empty())
  6. return 0;
  7. vector<vector<int>> dp(n,vector<int>(n,0));
  8.  
  9. for(int i=0;i<n;++i)
  10. dp[i][i]=nums[i];
  11.  
  12. for(int i=n-2;i>=0;--i)
  13. for(int j=i+1;j<n;++j)
  14. {
  15. auto a=i+2<=j?dp[i+2][j]+nums[i]:0;
  16. auto b=i<=j-2?dp[i][j-2]+nums[j]:0;
  17. auto c=max(a,b);
  18. auto d=max(dp[i+1][j],dp[i][j-1]);
  19. dp[i][j]=max(d,c);
  20. }
  21.  
  22. return dp[0][n-1];
  23. }
  24. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement