Dies ist ein ganzzahliges Array [1,-1,2], das die folgenden Unterarrays hat:
1.[1] sum=>1
2.[1 , -1] sum=>0
3.[1,-1,2] sum=>2
4.[-1] sum=>-1
5.[-1,2] sum=>1
6.[2] sum=>2
Wie Sie sehen können, in diesen Unterarrays jeweils Die maximale Summe der Elemente beträgt 2.
Wie kann man bei einem gegebenen Integer-Array die Summe seiner größten Unterarrays ermitteln?
Wenn Sie sich die Reihenfolge, in der ich die Unterarrays oben aufgeführt habe, genau ansehen, können Sie erkennen, dass dies ab dem ersten Teil erschöpfend ist.
Nun, meine Methode ist erschöpfend und der Ausführungsprozess ist genau wie oben gezeigt.
Die Effizienz der umfassenden Methode zur Lösung dieses Problems ist tatsächlich nicht gering und kann allgemeine Bedürfnisse erfüllen.
Ich beginne mit dem ersten Element und muss N Elemente durchlaufen.
Ab dem zweiten Element müssen N-1 Elemente durchlaufen werden.
......
Das letzte Element beginnt nur mit sich selbst, 1 Element.
Mit anderen Worten: Die tatsächliche Komplexität der erschöpfenden Methode beträgt N²/2, was ziemlich effizient ist.
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; }
Das Obige ist die interessante JavaScript-Frage: Finden Sie die Summe des größten Subarrays. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!