Chào các bạn.
Câu hỏi hôm nay như sau:
Problem
Given a list of integers, write a function that returns the largest sum of non-adjacent numbers. Numbers can be 0 or negative.
For example, [2, 4, 6, 2, 5] should return 13, since we pick 2, 6, and 5. [5, 1, 1, 5] should return 10, since we pick 5 and 5. Follow-up: Can you do this in O(N) time and constant space?
Code
private static int detectSum(int[] num) {
int a = 0;
int b = 0;
for (int n : num) {
int temp = a;
a = Math.max(a, b);
b = n + temp;
}
return Math.max(a, b);
}