Q4: Find Minimum and Maximum Values in an Array

Find both min and max values in a single pass across the array without relying on spread syntax with Math.min/Math.max, which can overflow the call stack on large arrays.

Single-Pass Min/Max Finder
function findMinMax(arr) {
  if (!arr.length) return { min: undefined, max: undefined };
  let min = arr[0];
  let max = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < min) min = arr[i];
    if (arr[i] > max) max = arr[i];
  }
  return { min, max };
}

console.log(findMinMax([3, 1, 9, 4, 2])); // { min: 1, max: 9 }
💡 Iterating once updates min and max tracking variables in O(n) time and O(1) auxiliary space.
Key Takeaways
  • Performs single-pass O(n) iteration to update bounds.
  • Avoids Math.max(...arr) which can throw a stack overflow error on very large arrays.
Knowledge Check

Why can Math.max(...largeArray) fail on extremely large arrays (e.g. 100,000+ elements)?