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

JavaScript에서 가장 큰 트리플 제품 배열 찾기

<시간/>

정수 배열을 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다.

입력으로 받은 배열을 기반으로 함수는 다음 기준에 따라 동일한 길이의 새 배열을 생성해야 합니다.

출력 배열의 해당 요소는 지금까지 발생한 가장 큰 세 숫자의 곱이어야 합니다. 해당 인덱스가 3보다 작은 경우(아직 세 개의 요소를 만나지 않은 경우) 해당 값은 -1이어야 합니다. 고유하지 않은 값을 사용하여 제품을 계산할 수 있지만 고유하지 않은 값은 다른 인덱스에 있어야 합니다.

예를 들어 -

입력 배열이 -

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

그러면 출력은 다음과 같아야 합니다. -

const output = [-1, -1, 6, 24, 60, 120];

예시

다음은 코드입니다 -

const arr = [1, 2, 3, 4, 5, 6];
const maximumTripleProduct = (arr = []) => {
   const res = [];
   const max = [arr[0], arr[1], arr[2]];
   res[0] = res[1] = -1;
   res[2] = arr[0] * arr[1] * arr[2];
   for(let i = 3; i < arr.length; i++){
      max.push(arr[i]);
      max.sort((a, b) => b - a);
      max.pop();
      res[i] = max[0] * max[1] * max[2];
   };
   return res;
};
console.log(maximumTripleProduct(arr));

출력

다음은 콘솔 출력입니다 -

[-1, -1, 6, 24, 60, 120]