Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. // Steve Yang
  2. // 2019.09.28
  3. class Solution {
  4. public:
  5. int robi(vector<int>& nums, int i, vector<int>& sum) {
  6. if (i >= nums.size()) {
  7. return 0;
  8. }
  9.  
  10. int c1 = (0 <= sum[i] ? sum[i] :
  11. (sum[i] = nums[i] + robi(nums, i+2, sum)));
  12.  
  13. int c2 = (i+1 >= nums.size() ? 0 :
  14. (0 <= sum[i+1] ? sum[i+1] :
  15. (sum[i+1] = nums[i+1] + robi(nums, i+3, sum))));
  16.  
  17. return c1 >= c2 ? c1 : c2;
  18.  
  19. }
  20. int rob(vector<int>& nums) {
  21. vector<int> sum(nums.size(), -1);
  22. if (1 == nums.size()) {
  23. return nums[0];
  24. }
  25. return robi(nums, 0, sum);
  26. }
  27. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement