Question
There is an integer array consisting positive numbers only.
Find maximum possible sum of elements such that there are no 2 consecutive elements present in the sum.
Solution
It’s a little tricky to write the equation. Always remember the basic principle of DP is to assume that solution is found for (i -1), and then we calculate solution for input (i).
Don’t miss the (i-1) part.
Code
written by me
public int maxSumNonConsec(int[] input) {
int len = input.length;
int[] dp = new int[len];
dp[0] = input[0];
dp[1] = Math.max(input[0], input[1]);
for (int i = 2; i < len; i++) {
dp[i] = Math.max(dp[i - 1], input[i] + dp[i - 2]);
}
return dp[len - 1];
}