Heim  >  Artikel  >  Web-Frontend  >  Interessante JavaScript-Frage: Finden Sie die maximale Summe von Subarrays

Interessante JavaScript-Frage: Finden Sie die maximale Summe von Subarrays

黄舟
黄舟Original
2017-01-22 14:47:581718Durchsuche

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)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn