从数组中查找范围 - 递归版本

时间:2018-05-04 20:40:00

标签: recursion

这是我的迭代算法。我想写一个递归版本 制作一个大小为n的数组 使min =无穷大并使max = -infinity

For i from 0 to n-1

  If A[i] > max

    max = A[i]


  if A[i] < min

    min = A[i]

  Return max - min

1 个答案:

答案 0 :(得分:1)

const range = (arr, min, max, i) => {
  if (i == arr.length) return [min, max];
  if (arr[i] > max) return range(arr, min, arr[i], i + 1);
  if (arr[i] < min) return range(arr, arr[i], max, i + 1);
};

console.log(
  range(
    [1, 2, 3, 4, 8, 99, 432, -123],
    Number.POSITIVE_INFINITY,
    Number.NEGATIVE_INFINITY,
    0
  )
);