plduhoux
2/23/2018 - 5:43 PM

maximalAllowableSubarrays

EDGE CASE DOES NOT PASS

int[] maximalAllowableSubarrays(int[] inputArray, int maxSum) {
    int[] res = new int[inputArray.length];
    for (int i = 0; i < inputArray.length; i++) {
        int sum = 0;
        for (int k = i; k < inputArray.length; k++) {
            sum += inputArray[k];
        }
        if (sum <= maxSum) {
            res[i] = inputArray.length - 1;
            continue;
        }
        for (int j = inputArray.length - 2; j >= i; j--) {
            sum -= inputArray[j + 1];
            if (sum <= maxSum) {
                res[i] = j;
                break;
            }
        }
    }
    return res;
}