엄격하게 더 작은 요소와 더 큰 요소로 요소 계산

5520 단어 javascriptleecod
정수 배열 nums가 주어지면 엄격하게 작은 요소와 더 큰 요소가 모두 nums에 나타나는 요소의 수를 반환합니다.

https://leetcode.com/problems/count-elements-with-strictly-smaller-and-greater-elements/

예 1:

입력: 숫자 = [11,7,2,15]
출력: 2
설명: 요소 7에는 요소 2가 그것보다 엄격하게 작고 요소 11이 그것보다 엄격하게 큽니다.
요소 11에는 그것보다 엄격하게 작은 요소 7과 그것보다 엄격하게 큰 요소 15가 있습니다.
전체적으로 더 작은 요소와 더 큰 요소가 모두 숫자로 표시되는 2개의 요소가 있습니다.
예 2:

입력: 숫자 = [-3,3,3,90]
출력: 2
설명: 요소 3에는 요소 -3이 그것보다 엄격하게 작고 요소 90이 그것보다 엄격하게 큽니다.
값이 3인 요소가 2개 있으므로 전체적으로 더 작은 요소와 더 큰 요소가 모두 숫자로 표시되는 요소가 2개 있습니다.

/**
 * @param {number[]} nums
 * @return {number}
 */
var countElements = function (arr) {
  // sorting elemnt
  let nums = [...arr].sort((a, b) => a - b);
  // if length is less than 2 then no need to check as both elements are on extreme end of Array
  if (nums.length <= 2) {
    return 0;
  }
  // keeping count of element
  let count = 0;
  // moving from 1 to n-1 becoz start element will not have any element smaller than it & last element will not have any element greater than it
  for (let i = 1; i < nums.length - 1; i++) {
    let firstHalf = nums.slice(0, i);
    let secondHalf = nums.slice(i + 1, nums.length);
    let current = nums[i];
    if (Math.min(...firstHalf) < current && current < Math.max(...secondHalf)) {
      count++;
    }
  }
  return count;
};
countElements([11, 7, 2, 15]);
countElements([-3, 3, 3, 90]);
countElements([-71, -71, 93, -71, 40]);

좋은 웹페이지 즐겨찾기