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

JavaScript에서 n보다 약간 작은 두 요소의 합

<시간/>

첫 번째 인수로 숫자 배열 arr을, 두 번째 인수로 단일 숫자 num을 취하는 JavaScript 함수를 작성해야 합니다.

그런 다음 함수는 합이 배열에서 가장 크지만 숫자 num보다 작은 두 개의 숫자를 찾아야 합니다. 합이 num보다 작은 숫자가 두 개 없으면 함수는 -1을 반환해야 합니다.

예를 들어 -

입력 배열과 숫자가 -

인 경우
const arr = [34, 75, 33, 23, 1, 24, 54, 8];
const num = 60;

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

const output = 58;

34 + 24는 60보다 작은 가장 큰 합이기 때문입니다.

예시

이에 대한 코드는 -

const arr = [34, 75, 33, 23, 1, 24, 54, 8];
const num = 60;
const lessSum = (arr = [], num = 1) => {
   arr.sort((a, b) => a - b);
   let max = -1;
   let i = 0;
   let j = arr.length - 1;
   while(i < j){
      let sum = arr[i] + arr[j];
      if(sum < num){
         max = Math.max(max,sum);
         i++;
      }else{
         j--;
      };
   };
   return max;
};
console.log(lessSum(arr, num));

출력

콘솔의 출력은 -

58