diff --git a/Cpp/198-House-Robber/Solution2.cpp b/Cpp/198-House-Robber/Solution2.cpp new file mode 100644 index 0000000..9061549 --- /dev/null +++ b/Cpp/198-House-Robber/Solution2.cpp @@ -0,0 +1,24 @@ +// One more solution Using memoization dp (recursion). + + int solve(vector&nums, int i, vector&dp){ + if(i>=nums.size()){ + return 0; + } + if(dp[i]!=-1) + return dp[i]; + + int take=nums[i]+solve(nums,i+2, dp); + int ntake=0+solve(nums,i+1, dp); + + return dp[i]=max(take,ntake); + + } + int rob(vector& nums) { + + int n=nums.size(); + vector dp(n,-1); + int ans = solve(nums, 0, dp); + + return ans; + + }