Computer >> Máy Tính >  >> Lập trình >> Javascript

Đếm số cạnh tam giác trong một mảng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng số, arr, làm đối số đầu tiên và duy nhất.

Nhiệm vụ của hàm của chúng ta là đếm số lượng bộ ba được chọn từ mảng có thể tạo thành hình tam giác nếu chúng ta coi chúng là độ dài cạnh của một hình tam giác.

Ví dụ:nếu đầu vào của hàm là -

const arr = [2, 2, 3, 4];

Sau đó, đầu ra phải là -

const output = 3;

Giải thích đầu ra

Các kết hợp hợp lệ là:

2,3,4 (using the first 2)
2,3,4 (using the second 2)
2,2,3

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

3