在 JavaScript 中计算数组中可能的 AP
javascriptweb developmentfront end technology
等差数列
等差数列 (AP) 是一个数字序列,其中任何两个连续数字的差都是一个常数值(又称公差)。
例如,1、2、3、4、5、6……是一个 AP,其公差等于 1(2 -1)。
问题
我们需要编写一个 JavaScript 函数,该函数接受一个整数数组 arr 作为第一个也是唯一的参数。
我们的函数的任务是返回该列表中可能的大小为 3 的等差数列的数量。在每个数列中,元素之间的差异必须相同。我们保证输入数组将按升序排序。例如,如果函数的输入是
例如,如果函数的输入是 −
输入
const arr = [1, 2, 3, 5, 7, 9];
输出
const output = 5;
输出说明
因为所需的 AP 是 −
[1, 2, 3], [1, 3, 5], [1, 5, 9], [3, 5, 7] and [5, 7, 9]
示例
以下是代码 −
const arr = [1, 2, 3, 5, 7, 9]; const countAP = (arr = []) => { let i, j, k; let { length: len } = arr; let count = 0; for (i = 0; i < len - 2; i++){ for (k = i + 2; k < len; k++){ let temp = arr[i] + arr[k]; let div = temp / 2; if ((div * 2) == temp){ for (j = i + 1; j < k; j++){ if (arr[j] == div){ count += 1; } } } } } return count; }; console.log(countAP(arr));
输出
5