diff --git a/3068. Find the Maximum Sum of Node Values b/3068. Find the Maximum Sum of Node Values new file mode 100644 index 0000000..db74c3e --- /dev/null +++ b/3068. Find the Maximum Sum of Node Values @@ -0,0 +1,19 @@ +class Solution { +private: + long long dp[20001][2]; + long long f(int idx,int even,vector &nums,int k) { + // base cases + if(idx >= nums.size()) return even? 0 : -1e9; + if(dp[idx][even] != -1) return dp[idx][even]; + + long long take = (nums[idx]^k) + f(idx+1,even^1,nums,k); + long long notTake = nums[idx] + f(idx+1,even,nums,k); + + return dp[idx][even] = max(take,notTake); + } +public: + long long maximumValueSum(vector& nums, int k, vector>& edges) { + memset(dp,-1,sizeof(dp)); + return f(0,1,nums,k); + } +};