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

Tổng số cách có thể để làm cho tổng các phần tử chỉ số chẵn lẻ bằng nhau trong mảng trong JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng số làm đối số đầu tiên và duy nhất.

Sau đó, hàm sẽ thử xóa một phần tử như vậy khỏi mảng, khi xóa phần tử đó, tổng các phần tử ở chỉ số lẻ bằng tổng các phần tử ở chỉ số chẵn. Theo cách này, hàm nên đếm tất cả các cách duy nhất có thể có mà chúng ta có thể loại bỏ một phần tử tại một thời điểm để đạt được sự kết hợp cần thiết.

Ví dụ -

Nếu mảng đầu vào là -

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

Khi đó, kết quả đầu ra phải là 2 vì có hai phần tử 6 và 2 tương ứng ở chỉ số 1 và 3 tạo nên bảng kết hợp.

Khi chúng ta xóa 6 khỏi mảng -

[2, 4, 2] so the sum at odd indices = sum at even indices = 4

Khi chúng ta xóa 2 khỏi mảng -

[2, 6, 4] so the sum at odd indices = sum at even indices = 6

Ví dụ

Sau đây là mã -

const arr = [2, 6, 4, 2];
const possibleWays = (arr = []) => {
   const sum = new Array(arr.length);
   let res = 0;
   let oddSum = 0;
   let evenSum = 0;
   for (let i = 0; i < arr.length; ++i) {
      if (i % 2 === 0) sum[i] = (evenSum += arr[i]);
      else sum[i] = (oddSum += arr[i]);
   }
   for (let i = 0; i < arr.length; ++i) {
      if (i % 2 === 0) {
         if (2 * sum[i] - arr[i] + oddSum === 2 * (sum[i - 1] || 0) + evenSum) ++res;
      } else if (2 * sum[i] - arr[i] + evenSum === 2 * (sum[i - 1] || 0) + oddSum) {
         ++res;
      }
   }
   return res;
};
console.log(possibleWays(arr));

Đầu ra

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

2