MinAvgTwoSlice 100% Solution in Javascript

Question

app.codility.com

My Solution

This is the most challenging one I've ever seen in codility (if you also start from Q1 to here), the trick is that any slices of arbitrary length can be broken into sub-slices of length 2 or 3. The proof is in the below link codesays.com

app.codility.com

function solution(A) {
    
    let prefixSum = [];
    prefixSum[0] = 0;
    
    for (let  i = 1; i <= A.length; i++) {
        prefixSum[i] = prefixSum[i-1] + A[i-1];
    }
    
    let min = 10001;
    let startIndex = 0;
    
    // for slices with length 2
    for (let i = 0; i < prefixSum.length-2; i++) {
        
        let avg2 = (prefixSum[i+2] - prefixSum[i])/2;
        
        if (min > avg2) {
            min = avg2;
            startIndex = i;
            // console.log(min+", "+startIndex);
        }
    }
    
    // for slices with length 3
    for (let i = 0; i < prefixSum.length-3; i++) {
        
        let avg3 = (prefixSum[i+3] - prefixSum[i])/3;    
        
        if (min > avg3) {
            min = avg3;
            startIndex = i;
            // console.log(min+", "+startIndex);
        }
        
    }
    
    return startIndex;
    
}