가장 작은 누락된 숫자를 찾는 JavaScript 프로그램
음수가 아닌 다양한 정수의 정렬된 배열을 얻었습니다. 여기서 누락된 가장 작은 숫자를 찾아야 합니다. 따라서 이 튜토리얼에서는 이 문제를 해결하는 다양한 방법을 탐색하고 다양한 예를 통해 시간 복잡도에 대해 논의합니다.
문제 이해하기
문제 설명은 매우 간단합니다. 음수가 아닌 다양한 정수의 정렬된 배열이 주어지면 그 배열에서 누락된 가장 작은 숫자를 찾아야 합니다. 이 문제를 이해하기 위해 예를 들어 보겠습니다.
예
배열 [1, 2, 4, 5, 6]이 있다고 가정합니다. 여기에서 이 배열의 숫자 2와 4 사이에 공백이 있음을 알 수 있습니다. 이러한 불일치는 숫자가 누락되었음을 나타냅니다. 이제 위치에 맞는 가장 작은 숫자를 찾아야 합니다.
숫자가 누락되었는지 확인하려면 먼저 배열에 숫자 3이 포함되어 있는지 확인해야 합니다. 숫자 3이 배열에 없으면 숫자 3이 배열에 포함되어 있지 않기 때문에 누락된 숫자라고 말할 수 있습니다.
이제 이 문제를 해결하는 몇 가지 방법을 살펴보겠습니다.
방법 1: 순진한 방법
이 문제를 해결하는 가장 쉬운 방법 중 하나는 배열을 반복하면서 각 항목이 올바른 위치에 있는지 확인하는 것입니다. 요소가 올바른 위치에 있지 않으면 누락된 요소의 최소 개수를 찾습니다.
예
위에서 설명한 코드입니다 -
으아아아전체 배열을 반복하므로 이 방법의 시간 복잡도는 O(n)입니다.
그러나 이 솔루션은 정렬된 배열이 제공된다는 사실을 활용하지 않기 때문에 비효율적입니다.
방법 2: 이진 검색 방법
여기에서는 이 문제를 보다 효율적으로 해결하기 위해 이진 검색 방법을 사용하겠습니다. 이 방법에서는 배열에 없는 첫 번째 요소에 대해 이진 검색을 수행합니다. 이 메소드의 코드는 -
입니다.예
으아아아이진 검색을 수행하므로 위 방법의 시간 복잡도는 O(log n)입니다.
이 방법은 배열이 정렬된다는 점을 활용하므로 간단한 방법보다 더 효율적입니다.
방법 3: 선형 검색 방법
우리가 논의할 세 번째 방법은 선형 검색 방법입니다. 이 방법은 배열이 정렬되어 있다는 사실에 의존하며, 이를 통해 누락된 숫자를 식별하기 위해 선형 검색을 적용할 수 있습니다.
선형 검색 방법은 배열을 반복하고 각 멤버를 해당 인덱스와 비교하는 방식으로 작동합니다. 요소의 인덱스가 해당 값과 같지 않으면 누락된 요소는 해당 요소 앞의 배열 어딘가에 있습니다. 누락된 요소의 인덱스를 반환합니다.
예
선형탐색 방식의 코드는 다음과 같습니다 -
으아아아전체 배열을 반복해야 하기 때문에 이 방법의 시간 복잡도는 O(n)입니다.
이 방법은 이진 검색 방법보다 효율성이 떨어지지만 작은 배열에 유용합니다.
방법 4: 향상된 이진 검색
우리가 논의할 네 번째 방법은 향상된 이진 검색 방법입니다. 이 방법은 중간 요소를 누락된 정수와 비교하는 대신 해당 인덱스와 비교한다는 점을 제외하면 이진 검색 방법과 매우 유사합니다.
수정된 이진 검색 방법의 기본 아이디어는 각 단계에서 배열을 반으로 나누고 중간 요소를 해당 인덱스와 비교하는 것입니다. 중간 요소가 해당 인덱스보다 큰 경우 누락된 멤버는 배열의 왼쪽 절반에 있어야 합니다. 중간 요소가 해당 인덱스보다 작거나 같으면 누락된 요소는 배열의 오른쪽 절반에 있어야 합니다.
예
수정된 이진 검색 방법의 코드 구현입니다. -
으아아아이 방법의 시간 복잡도도 O(log n)로 이진 검색 방법과 동일합니다.
이 방법은 선형 검색 방법보다 효율적이며 배열 정렬이 필요합니다.
결론
이 블로그에서는 배열에서 누락된 가장 작은 숫자를 찾는 네 가지 방법에 대해 논의했습니다. 순진한 방법, 이진 탐색 방법, 선형 탐색 방법, 수정된 이진 탐색 방법이 있습니다.
위 내용은 가장 작은 누락된 숫자를 찾는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 스크립트의 성능을 크게 향상시키기위한 10 가지 간단한 단계를 간략하게 설명합니다. 이러한 기술은 간단하고 모든 기술 수준에 적용 할 수 있습니다. 계속 업데이트 : Vite와 같은 번들과 함께 NPM과 같은 패키지 관리자를 활용하여

이 기사에서는 jQuery 라이브러리를 사용하여 간단한 사진 회전 목마를 만들도록 안내합니다. jQuery를 기반으로 구축 된 BXSLIDER 라이브러리를 사용하고 회전 목마를 설정하기위한 많은 구성 옵션을 제공합니다. 요즘 그림 회전 목마는 웹 사이트에서 필수 기능이되었습니다. 한 사진은 천 단어보다 낫습니다! 그림 회전 목마를 사용하기로 결정한 후 다음 질문은 그것을 만드는 방법입니다. 먼저 고품질 고해상도 사진을 수집해야합니다. 다음으로 HTML과 일부 JavaScript 코드를 사용하여 사진 회전 목마를 만들어야합니다. 웹에는 다양한 방식으로 회전 목마를 만드는 데 도움이되는 라이브러리가 많이 있습니다. 오픈 소스 BXSLIDER 라이브러리를 사용할 것입니다. BXSLIDER 라이브러리는 반응 형 디자인을 지원 하므로이 라이브러리로 제작 된 회전 목마는

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

속편은 약속 기반 Node.js ORM입니다. PostgreSQL, MySQL, MariaDB, Sqlite 및 MSSQL과 함께 사용할 수 있습니다. 이 튜토리얼에서는 웹 앱 사용자를위한 인증을 구현할 것입니다. 그리고 우리는 인기 인증 중간 인 여권을 사용할 것입니다
