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

JavaScript의 정렬된 배열에서 원하는 숫자 찾기

<시간/>

오름차순으로 정렬된 정수 배열이 있습니다. 우리는 첫 번째 인수로 하나의 배열을 취하고 두 번째 인수로 목표 합계 숫자를 취하는 JavaScript 함수를 작성해야 합니다.

함수는 추가될 때 목표 합계를 제공하는 배열에서 두 개의 숫자를 찾아서 반환해야 합니다. 이 문제를 풀기 위한 조건은 이것을 선형 시간과 일정한 공간을 사용하여 해야 한다는 것입니다.

예시

다음은 코드입니다 -

const arr = [4, 6, 8, 9, 11, 12, 18, 21];
const num = 27;
const findElements = (arr = [], target) => {
   let left = 0;
   let right = arr.length - 1;
   let res = [];
   while (left < right) {
      let leftElement = arr[left];
      let rightElement = arr[right];
      if (leftElement + rightElement === target) {
         res.push(arr[left]);
         res.push(arr[right]);
         break;
      } else if (leftElement + rightElement > target) {
         right--;
      } else {
         left++;
      }
   }
   return res;
};
console.log(findElements(arr, num));

출력

다음은 콘솔 출력입니다 -

[6, 21]