우리는 양수 및 음수 값을 가진 숫자 배열을 취하는 JavaScript 함수를 작성해야 합니다. 원래 배열에 순 합이 0인 하위 배열이 있는지 여부를 확인해야 합니다.
우리 함수는 이를 기반으로 부울을 반환해야 합니다.
접근
여기에서 접근 방식은 간단합니다. for 루프를 사용하여 배열을 반복하고 해당 특정 요소까지 누적 합계를 계산합니다. 그리고 누적 값이 0이 되거나 이전에 얻은 값에 도달하면 합계가 0인 하위 배열이 존재합니다. 그렇지 않으면 합계가 0인 하위 배열이 없습니다.
따라서 이 함수에 대한 코드를 작성해 보겠습니다. -
예시
const arr = [4, 2, -1, 5, -2, -1, -2, -1, 4, -1, 5, -2, 3]; const zeroSum = arr => { const map = new Map(); let sum = 0; for(let i = 0; i < arr.length; i++){ sum += arr[i]; if(sum === 0 || map.get(sum)){ return true; }; map.set(sum, i); }; return false; }; console.log(zeroSum(arr));
출력
콘솔의 출력은 다음과 같습니다. -
true