1388. Pizza With 3n Slices

Difficulty:
Related Topics:
Similar Questions:

    Problem

    There is a pizza with 3n slices of varying size, you and your friends will take slices of pizza as follows:

    Given an integer array slices that represent the sizes of the pizza slices in a clockwise direction, return the maximum possible sum of slice sizes that you can pick.

      Example 1:

    Input: slices = [1,2,3,4,5,6]
    Output: 10
    Explanation: Pick pizza slice of size 4, Alice and Bob will pick slices with size 3 and 5 respectively. Then Pick slices with size 6, finally Alice and Bob will pick slice of size 2 and 1 respectively. Total = 4 + 6.
    

    Example 2:

    Input: slices = [8,9,8,6,1,1]
    Output: 16
    Explanation: Pick pizza slice of size 8 in each turn. If you pick slice with size 9 your partners will pick slices of size 8.
    

      Constraints:

    Solution

    class Solution {
        public int maxSizeSlices(int[] slices) {
            int n = slices.length;
            int third = n / 3;
            return Math.max(
                    maxSizeSlices(slices, 0, n - 2, third), maxSizeSlices(slices, 1, n - 1, third));
        }
    
        private int maxSizeSlices(int[] slices, int start, int end, int parts) {
            int[] dp = new int[slices.length];
            int res = 0;
            for (int i = 0; i < parts; i++) {
                int prev = 0;
                int prevPrev = 0;
                for (int j = end; j >= start; j--) {
                    int curr = dp[j];
                    dp[j] = slices[j] + prevPrev;
                    prevPrev = prev;
                    prev = Math.max(curr, prev);
                    res = Math.max(res, dp[j]);
                }
            }
            return res;
        }
    }
    

    Explain:

    nope.

    Complexity: