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);
    }

Source code

https://github.com/tubean/dailycode/tree/master/src/day8