Maison > interface Web > js tutoriel > le corps du texte

Question JavaScript amusante : trouver la somme maximale des sous-tableaux

黄舟
Libérer: 2017-01-22 14:47:58
original
1760 Les gens l'ont consulté

Il s'agit d'un tableau d'entiers [1,-1,2], qui contient les sous-tableaux suivants :

1.[1] sum=>1

2.[1 , -1] somme=>0

3.[1,-1,2] somme=>2

4.[-1] somme=>-1

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

6.[2] sum=>2

Comme vous pouvez le voir, dans ces sous-tableaux, chacun La somme maximale des éléments est de 2.

Alors, étant donné n'importe quel tableau d'entiers, comment trouver la somme de ses plus grands sous-tableaux ?

Si vous regardez attentivement l'ordre dans lequel j'ai répertorié les sous-tableaux ci-dessus, vous pouvez voir que celui-ci est exhaustif à partir du premier.

Eh bien, ma méthode est exhaustive et le processus d'exécution est exactement comme indiqué ci-dessus.

L'efficacité de la méthode exhaustive pour résoudre ce problème n'est en fait pas faible et elle peut répondre aux besoins généraux.

Je pars du premier élément et je dois parcourir N éléments.

À partir du deuxième élément, N-1 éléments doivent être parcourus.

......

Le dernier élément commence par lui-même seulement, 1 élément.

En d'autres termes, la complexité réelle de la méthode exhaustive est N²/2, ce qui est assez efficace.

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;  
}
Copier après la connexion

Ce qui précède est la question JavaScript amusante : trouver la somme du plus grand sous-tableau. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal