## DEV Community

Dumb Down Demistifying Dev

Posted on

# Find The Average Pair

## Multi-Pointers QUestion 2

Given a sorted array and a target average value, write a function `AveragePair` to determine if a pair of numbers adds up to the target average value.

Thoughts:

• One pointer at the start of the array
• One pointer at the end of the array
• Since the array is sorted,
• if calculated average pair bigger than the expected value
• we move left pointer by 1 position to the right
• if calculated average pair smaller than the expected value
• we move right pointer by 1 position to the left
• Practice both iterative and recursive methods
``````// Recursive method
function averagePair(sortedArr, avgNum){
const arrLength = sortedArr.length;
if (arrLength < 1) return false;

function recurs(sortedArr, left, right) {
if (left === right) return false;

const avg = (sortedArr[left] + sortedArr[right]) / 2;
if (avg === avgNum) return true;
return (avg < avgNum)
? recurs(sortedArr, left+=1, right)
: recurs(sortedArr, left, right-=1);
}

return recurs(sortedArr, 0, arrLength - 1);
}

// Iterative method
function AveragePair(sortedArr, avgNum){
const arrLength = sortedArr.length;
if (arrLength < 1) return false;

let left = 0;
let right = arrLength - 1;
while(right > left) {
const avg = (sortedArr[left] + sortedArr[right]) / 2;
if (avg === avgNum) return true;
if (avg < avgNum) {
left++;
} else {
right--;
}
}
return false;
}
``````