#include <bits/stdc++.h>
int f(int ind,vector<int>&nums,vector<int>&dp)
{
if(ind==0)
return nums[ind];
if(ind <1)
return 0;
if(dp[ind]!=-1)
return dp[ind];
int pick=nums[ind]+f(ind-2,nums,dp);
int notp=0+f(ind-1,nums,dp);
dp[ind]=max(pick,notp);
return max(pick,notp);
}
int maximumNonAdjacentSum(vector<int> &nums){
// Write your code here.
int n=nums.size();
vector<int> dp(n,-1);
return f(n-1,nums,dp);
}
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