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

JavaScript의 배열에서 특별한 종류의 요소 찾기

<시간/>

세 개의 인수, 즉 -

를 취하는 JavaScript 함수를 작성해야 합니다.
arr --> an array of integers
m --> a positive integer
n --> a positive integer

우리 함수의 임무는 다음과 같은 두 개의 요소가 존재하는지 알아내는 것입니다.

  • a1과 a2의 절대 차이는 최대 m입니다.

  • a1과 a2의 인덱스 사이의 절대 차이는 최대 n

    입니다.

예시

다음은 코드입니다 -

const arr = [1, 2, 3, 1, 7, 8];
const findSpecialElements = (arr = [], m, n) => {
   const map = arr
   .map((el, ind) => ({ el, ind }))
   .sort((a, b) => a.el - b.el);
   let left = 0;
   let right = 1;
   while (right < map.length) {
      const diff = Math.abs(map[right].el - map[left].el);
      const range = Math.abs(map[right].ind - map[left].ind);
      if (diff <= n && range <= m){
         return true
      }else if (diff > n){
         left++;
      }else if (range > m){
         right++;
      };
      if (left === right){
         right++;
      };
   };
   return false;
};
console.log(findSpecialElements(arr, 3, 0));

출력

다음은 콘솔 출력입니다 -

true