class Solution { public: int f(int ind, vector<int> &nums, vector<int> &dp) { if(ind == 0) return nums[ind]; if(ind < 0) return 0; if(dp[ind] != -1) return dp[ind]; int pick = nums[ind] + f(ind - 2, nums, dp); int notPick = 0 + f(ind - 1, nums, dp); return dp[ind] = max(pick, notPick); } int rob(vector<int>& nums) { int n=nums.size(); vector<int> dp(nums.size()+2,-1); int a = f(n-1,nums,dp); return a; } };
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter