이것은 다음과 같은 하위 배열을 갖는 정수 배열 [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)를 참고하세요!