정수 배열을 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.
함수는 배열의 두 요소를 곱하여 얻을 수 있는 최대 곱을 찾아야 합니다. 우리의 조건은 선형 시간과 일정한 공간에서 이것을 해야 한다는 것입니다.
예를 들어 -
입력 배열이 -
인 경우const arr = [3, 9, 2, 1, 0];
그러면 출력은 다음과 같아야 합니다. -
const output = 27;
가장 큰 곱이고 3과 9를 곱하여 얻을 수 있기 때문입니다.
예시
다음은 코드입니다 -
const arr = [3, 9, 2, 1, 0]; const maxPairProduct = (arr = []) => { let c = Infinity, d = c; let a = -Infinity - 1, b = a; for (const n of arr) { if(n >= a){ b = a; a = n; }else if(n >= b){ b = n; }; if(n <= d){ c = d; d = n; }else if(n <= c){ c = n; }; }; return Math.max(a * b, c * d); }; console.log(maxPairProduct(arr));
출력
다음은 콘솔 출력입니다 -
27