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

JavaScript에서 정렬되지 않은 가장 짧은 배열의 길이

<시간/>

문제

첫 번째이자 유일한 인수로 숫자 배열인 arr을 취하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 하나의 연속 하위 배열의 길이를 찾아야 합니다. 이 하위 배열을 오름차순으로만 정렬하면 전체 배열도 오름차순으로 정렬됩니다.

예를 들어, 함수에 대한 입력이 -

인 경우
const arr = [3, 7, 5, 9, 11, 10, 16];

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

const output = 5;

출력 설명

[7, 5, 9, 11, 10]을 정렬하면 전체 배열이 정렬되기 때문입니다.

예시

다음은 코드입니다 -

const arr = [3, 7, 5, 9, 11, 10, 16];
const shortestLength = (arr = []) => {
   const sorted = [...arr].sort((a, b) => a - b)
   let start = 0
   let end = sorted.length - 1
   while (sorted[start] === arr[start] && start < arr.length) {
      start += 1
   }
   while (sorted[end] === arr[end] && end >= 0) {
      end -= 1
   }
   return end >= start ? end - start + 1 : 0
}
console.log(shortestLength(arr));

출력

다음은 콘솔 출력입니다 -

5