#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