문제
첫 번째이자 유일한 인수로 숫자 배열인 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