用 JavaScript 計算陣列中三角形邊數
問題
我們需要編寫一個 JavaScript 函式,它將一個數字陣列 arr 作為第一個也是唯一引數。
我們函式的任務是計算可以從陣列中選擇的作為三角形邊長的三元數的數目。如果我們取它們作為三角形的邊長。
例如,如果輸入到函式中是 -
const arr = [2, 2, 3, 4];
那麼輸出應該是 -
const output = 3;
輸出說明
有效組合是
2,3,4 (using the first 2) 2,3,4 (using the second 2) 2,2,3
示例
以下是程式碼 -
const arr = [2, 2, 3, 4];
const countTriangle = (arr = []) => {
arr.sort((a, b) => a - b)
let k = 2
let count = 0
for (let i = 0; i < arr.length - 2; i++) {
for (let j = i + 1; j < arr.length - 1; j++) {
k = j + 1
while (arr[k] < arr[i] + arr[j]) {
k += 1
}
count += k - j - 1
}
}
return count
};
console.log(countTriangle(arr));輸出
以下是控制檯輸出 -
3
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP