DEV Community

Dumb Down Demistifying Dev
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; } 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)