개발자로서 우리는 배열에 합이 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을 인수로 사용합니다.
두 개의 변수 sum 및 set을 초기화합니다. sum 변수는 하위 배열 요소의 현재 합계를 추적하는 데 사용되고 set 변수는 이전에 확인된 합계를 저장하는 데 사용됩니다.
李>그런 다음 for 루프를 사용하여 배열 요소를 반복합니다.
각 반복마다 현재 요소를 sum에 추가하고 set에 이미 sum 값이 포함되어 있는지 확인합니다.
sum 값이 이미 set에 있는 경우 는 이 합이 처음 나타나는 부분부터 현재 요소 끝까지의 하위 배열의 합이 0임을 의미하므로 true를 반환합니다.
sum 값이 set에 없으면 해당 값을 집합에 추가합니다.
전체 배열을 반복하고 true를 반환하지 않으면 합이 0인 하위 배열이 없다는 의미이므로 false를 반환합니다.
마지막으로 샘플 배열을 사용하여 함수를 테스트하고 결과를 콘솔에 기록합니다.
위 내용은 합이 0인 하위 배열이 있는지 찾는 JavaScript 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!