>  기사  >  웹 프론트엔드  >  흥미로운 JavaScript 질문: 하위 배열의 최대 합 찾기

흥미로운 JavaScript 질문: 하위 배열의 최대 합 찾기

黄舟
黄舟원래의
2017-01-22 14:47:581754검색

이것은 다음과 같은 하위 배열을 갖는 정수 배열 [1,-1,2]입니다:

1.[1] sum=>1

2.[1 , -1] 합계=>0

3.[1,-1,2] 합계=>2

4.[-1] 합계=>-1

5.[-1,2] sum=>1

6.[2] sum=>2

보시다시피 이 하위 배열에서는 요소의 최대 합은 2입니다.

그러면 정수 배열이 주어지면 가장 큰 하위 배열의 합을 어떻게 구할까요?

위의 하위 배열을 나열한 순서를 주의 깊게 살펴보면 첫 번째 항목부터 전체 배열임을 알 수 있습니다.

글쎄, 내 방법은 철저하고 실행 과정은 위와 같습니다.

이 문제에서 철저한 방법의 효율성은 실제로 낮지 않으며 일반적인 요구를 충족할 수 있습니다.

첫 번째 요소부터 시작하여 N개 요소를 순회해야 합니다.

두 번째 요소부터 N-1개 요소를 순회해야 합니다.

......

마지막 요소는 자체 요소 1개로만 시작합니다.

즉, 완전 방법의 실제 복잡도는 N²/2로 매우 효율적입니다.

function maxContiguousSum (arr) {  
    var max = 0;  
    for(var i=0;i<arr.length;i++){  
        var temp = 0;  
        for(var j=i;j<arr.length;j++){  
            temp += arr[j];  
            if(temp > max){  
                max = temp;  
            }  
        }  
    }  
    return max;  
}

위는 가장 큰 하위 배열의 합을 찾는 재미있는 JavaScript 질문입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.