在 JavaScript 中計算陣列中可能存在的 AP
算術級數
算術級數 (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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP