Ejemplos, Encontrar par de valores que correspondan a un promedio

Algoritmo para encontrar dentro de un arreglo un par de valores que correspondan a un promedio

Escriba una función llamada parPromedio que reciba una lista de enteros ordenados y un valor promedio esperado, y determine si dentro del arreglo existe un par de valores cuyo promedio sea el proporcionado.

function parPromedio(nums, avg) {
    // si menos de 2 valores retornar false
    if (nums.length < 2) {
        return false;
    }

    // definir punteros
    let i = 0;
    let j = nums.length - 1;

    // recorrer el arreglo
    while (i < j) {
        // calculate current average
        let currAvg = (nums[i] + nums[j]) / 2;

        if (currAvg === avg) {
            // si el promedio de ambos es el esperado
            // retornar los indices
            return true;
        } else if (currAvg > avg) {
            // si el promedio es mayor que el esperado
            // mover el puntero derecho
            j--;
        } else {
            // si el promedio es menor que el esperado
            // mover el puntero izquierdo
            i++;
        }
    }

    // si no hay ningun par que satisfagan la condición
    return false;
}