Dynamic Programming - Max Array Sum (M)

 For example, given an array  we have the following possible subsets. These exclude the empty subset and single element subsets which are also valid.


Subset      Sum

[-2, 3, 5]   6

[-2, 3]      1

[-2, -4]    -6

[-2, 5]      3

[1, -4]     -3

[1, 5]       6

[3, 5]       8

Our maximum subset sum is . Note that any individual element is a subset as well.

static int maxSubsetSum(int[] arr) {
     if (arr.length == 0return 0;
    arr[0] = Math.max(0, arr[0]);
    if (arr.length == 1return arr[0];
    arr[1] = Math.max(arr[0], arr[1]);
    for (int i = 2; i < arr.length; i++)
      arr[i] = Math.max(arr[i-1], arr[i]+arr[i-2]);
    return arr[arr.length-1];

    }

留言

這個網誌中的熱門文章

AI for everyone coursera

考績被打差了 輕率離職會更傷

(影片) Advanced Playwright - Test Automation University