> 웹 프론트엔드 > JS 튜토리얼 > 합이 0인 하위 배열이 있는지 찾는 JavaScript 프로그램

합이 0인 하위 배열이 있는지 찾는 JavaScript 프로그램

WBOY
풀어 주다: 2023-09-23 12:09:04
앞으로
1340명이 탐색했습니다.

JavaScript 程序查找是否存在总和为 0 的子数组

개발자로서 우리는 배열에 합이 0인 하위 배열이 있는지 찾아달라는 요청을 자주 받습니다. 이는 접두사 합계 개념을 사용하여 수행할 수 있습니다. 지금까지 본 하위 배열 요소의 합계를 추적하고 이를 해시맵에 저장합니다. 이전에 합계를 본 경우 해당 합계를 포함하는 하위 배열이 존재하고 합계는 0입니다. 우리는 지금까지 본 요소의 합계로 해시맵을 지속적으로 업데이트할 것입니다. 이런 방식으로 배열에 합이 0인 하위 배열이 있는지 확인할 수 있습니다.

방법

  • 변수 "sum"을 0으로 초기화하고 "hash_map" 개체를 초기화하여 합계 값을 키로, 해당 인덱스를 값으로 저장합니다.

  • 각 요소에 대해 주어진 배열을 반복합니다. -

    • 현재 요소를 합계에 추가합니다.

    • 합이 0인 하위 배열이 있으므로 현재 합계가 0이거나 hash_map에 이미 존재하는 경우 true를 반환합니다.

    • 그렇지 않으면 합계 값과 해당 인덱스를 hash_map에 삽입하세요.

  • 루프가 완료되면 합이 0이 되는 하위 배열이 없으므로 false를 반환합니다.

  • hash_map은 누적 합계를 추적하고 중복 합계가 있는지 확인하는 데 도움이 됩니다.

  • 중복된 합계가 발견되면 두 합계 사이에 합계가 0인 하위 배열이 있다는 의미입니다.

  • 이 방법의 시간 복잡도는 O(n)입니다. 여기서 n은 주어진 배열의 요소 수입니다.

합이 0인 하위 배열이 있는지 확인하는 완전한 JavaScript 프로그램 예는 다음과 같습니다. -

으아악

지침

  • 함수 hasZeroSum는 배열 arr을 인수로 사용합니다.

  • 두 개의 변수 sumset을 초기화합니다. sum 변수는 하위 배열 요소의 현재 합계를 추적하는 데 사용되고 set 변수는 이전에 확인된 합계를 저장하는 데 사용됩니다.

    李>
  • 그런 다음 for 루프를 사용하여 배열 요소를 반복합니다.

  • 각 반복마다 현재 요소를 sum에 추가하고 set에 이미 sum 값이 포함되어 있는지 확인합니다.

  • sum 값이 이미 set에 있는 경우 는 이 합이 처음 나타나는 부분부터 현재 요소 끝까지의 하위 배열의 합이 0임을 의미하므로 true를 반환합니다.

  • sum 값이 set에 없으면 해당 값을 집합에 추가합니다.

  • 전체 배열을 반복하고 true를 반환하지 않으면 합이 0인 하위 배열이 없다는 의미이므로 false를 반환합니다.

  • 마지막으로 샘플 배열을 사용하여 함수를 테스트하고 결과를 콘솔에 기록합니다.

위 내용은 합이 0인 하위 배열이 있는지 찾는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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