Java Max Double Slice Sum
public class Solution {
    public static int maxDoubleSliceSum(int[] a) {
        int size = a.length;
        if (size < 3) {
            return 0;
        }

        int[] p1 = new int[size];
        int[] p2 = new int[size];
        p1[1] = 0;
        p2[size - 2] = 0;

        for (int i = 2; i < size - 1; i++) {
            p1[i] = Math.max(0, p1[i - 1] + a[i - 1]);
            p2[size - i - 1] = Math.max(0, p2[size - i] + a[size - i]);
        }

        int sum = p1[1] + p2[1];
        for (int i = 1; i < size - 1; i++) {
            sum = Math.max(sum, p1[i] + p2[i]);
        }

        return sum;
    }
}

This keeps the best sum ending on the left and starting on the right, then combines them around each middle position.