가장 짧고 순서가 지정되지 않은 하위 배열을 위한 JavaScript 프로그램 가장 짧고 순서가 지정되지 않은 하위 배열을 위한 JavaScript 프로그램

WBOY
풀어 주다: 2023-09-01 16:13:07
앞으로
1042명이 탐색했습니다.

最短无序子数组的 JavaScript 程序最短无序子数组的 JavaScript 程序

문제 설명에서는 정수 배열에서 순서가 지정되지 않은 가장 짧은 하위 배열을 찾아야 합니다. 즉, 요소가 오름차순이나 내림차순으로 정렬되지 않은 가장 작은 하위 배열을 결정해야 합니다. 이 문제는 여러 가지 방법으로 해결될 수 있지만 이 기사에서는 JavaScript를 사용하여 간단하면서도 효과적인 솔루션에 대해 논의하겠습니다.

먼저 순서가 지정되지 않은 하위 배열이 무엇인지 정의한 다음 문제 설명을 자세히 이해하고 예제와 코드 조각을 사용하여 단계별 솔루션을 설명하겠습니다. 이 글을 읽고 나면 JavaScript에서 이 문제를 해결하는 방법을 명확하게 이해하게 될 것입니다. 그럼 시작해 볼까요!

순서가 지정되지 않은 하위 배열이란 무엇인가요?

순서가 지정되지 않은 하위 배열은 요소가 오름차순이나 내림차순으로 배열되지 않은 배열의 연속된 하위 배열입니다. 즉, 하위 배열의 요소는 증가 또는 감소 순서로 정렬되지 않습니다.

예: [1, 2, 3, 5, 4, 6, 7]은 순서가 지정되지 않은 하위 배열입니다.

문제 설명

정수 배열이 주어지면 순서가 지정되지 않은 가장 짧은 하위 배열을 찾아야 합니다. 즉, 요소가 오름차순이나 내림차순으로 정렬되지 않은 가장 작은 하위 배열을 찾아야 합니다.

예를 들어 다음 배열을 고려해 보겠습니다: const arr = [1, 2, 5, 4, 3, 6, 7]

이 경우 하위 배열 [5, 4, 3]은 순서가 지정되지 않은 가장 짧은 하위 배열입니다.

이제 이 문제를 해결하기 위한 알고리즘을 이해하고 JavaScript를 사용하여 이 알고리즘을 구현해 보겠습니다.

가장 짧은 순서가 없는 하위 배열 알고리즘

Input - n개의 정수 배열

Output - 정렬되지 않은 가장 짧은 하위 배열의 길이

1단계 - 초기화 시작 = 0, 종료 = n-1

2단계 - 배열을 왼쪽에서 오른쪽으로 탐색하여 오른쪽 이웃보다 큰 첫 번째 요소를 찾습니다. 인덱스를 시작으로 설정합니다.

3단계 - 배열을 오른쪽에서 왼쪽으로 탐색하여 왼쪽 이웃보다 작은 첫 번째 요소를 찾습니다. 인덱스를 end로 설정합니다.

4단계 - 처음부터 끝까지 하위 배열에서 가장 작은 요소와 가장 큰 요소를 찾습니다.

5단계 - 0부터 start-1까지 배열을 반복하고 4단계에서 찾은 가장 작은 요소보다 큰 첫 번째 요소의 인덱스를 찾습니다. 인덱스를 왼쪽으로 설정합니다.

6단계 - end+1부터 n-1까지 배열을 반복하고 4단계에서 찾은 가장 큰 요소보다 작은 첫 번째 요소의 인덱스를 찾습니다. 인덱스를 오른쪽으로 설정하세요.

7단계 - 순서가 지정되지 않은 가장 짧은 하위 배열의 길이는 (오른쪽 - 왼쪽 + 1)입니다.

아래 예에서는 먼저 배열의 시작과 끝을 각각 반복하여 순서가 지정되지 않은 하위 배열의 시작 및 끝 인덱스를 찾습니다. 그런 다음 하위 배열에서 가장 작은 요소와 가장 큰 요소를 찾은 다음 배열의 시작과 끝에서 각각 순회하여 하위 배열의 왼쪽 및 오른쪽 인덱스를 찾습니다.

마지막으로 왼쪽 인덱스에서 오른쪽 인덱스를 빼고 1을 더하여 순서가 지정되지 않은 가장 짧은 하위 배열의 길이를 반환합니다.

으아아아

결론

JavaScript를 사용하여 가장 짧은 순서가 지정되지 않은 하위 배열 문제를 수행하는 방법에 대해 세세하게 논의했습니다. 이 기사를 통해 사람들이 코드에서 순서가 지정되지 않은 하위 배열과 관련된 문제를 쉽게 찾고 해결할 수 있기를 바랍니다.

위 내용은 가장 짧고 순서가 지정되지 않은 하위 배열을 위한 JavaScript 프로그램 가장 짧고 순서가 지정되지 않은 하위 배열을 위한 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!