Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 배열에서 홀수 짝수 인덱스 요소의 합을 같게 만드는 총 가능한 방법

<시간/>

숫자 배열을 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.

그런 다음 함수는 배열에서 그러한 요소 하나를 제거하려고 시도해야 합니다. 제거 시 홀수 인덱스에 있는 요소의 합은 짝수 인덱스에 있는 요소의 합과 같습니다. 그 과정에서 함수는 필요한 조합을 달성하기 위해 한 번에 하나의 요소를 제거할 수 있는 가능한 모든 고유한 방법을 계산해야 합니다.

예를 들어 -

입력 배열이 -

인 경우
const arr = [2, 6, 4, 2];

그러면 조합 테이블을 만드는 두 개의 요소 6과 2가 인덱스 1과 3에 각각 있기 때문에 출력은 2가 되어야 합니다.

배열에서 6을 제거하면 -

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

배열에서 2를 제거하면 -

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

예시

다음은 코드입니다 -

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

출력

다음은 콘솔 출력입니다 -

2