


Programme JavaScript pour trouver la somme maximale de i*arr parmi toutes les rotations d'un tableau donné
Aug 24, 2023 am 11:05 AMDans cet article, nous allons implémenter un programme JavaScript pour trouver la somme maximale de i*arr[i] parmi toutes les rotations d'un tableau donné. Ici, i*arr[i] signifie que nous voulons maximiser la somme de tous les éléments du tableau en les multipliant par l'élément à la position actuelle. Nous pouvons faire pivoter les éléments du tableau donnés vers la gauche ou la droite pour obtenir la réponse maximale. Pour cette question, nous fournirons un code complet et une explication détaillée.
Introduction au problème
Dans cette question, on nous donne un tableau, si nous multiplions tous les éléments par leurs numéros d'index correspondants puis additionnons la somme de tous les éléments, nous obtiendrons un nombre. Avec une rotation, nous pouvons déplacer l'élément le plus à gauche ou le plus à droite vers le côté opposé du tableau, ce qui entraîne un changement de l'index de chaque élément, et nous pouvons faire pivoter le tableau un certain nombre de fois (mais après que le nombre de rotations soit égal à la longueur du tableau, nous obtiendrons le même tableau que le premier), en faisant tourner le tableau nous pouvons changer l'index des éléments et donc la somme de i*arr[i].
Nous allons essayer de maximiser la somme avec deux approches, d'abord, voyons l'exemple −
1 2 3 4 5 6 |
|
On voit qu'à la première rotation, on obtient la somme la plus élevée qui est la 29.
Méthode
Il existe deux façons de parvenir à trouver la somme requise, examinons les deux -
La méthode 1 est l'approche naïve, nous trouverons toutes les rotations du tableau en temps O(N), et pour chaque rotation, nous trouverons la somme de tous les éléments en temps O(N) en parcourant le tableau, tandis que utilisez tout espace supplémentaire.
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Complexité temporelle et complexité spatiale
La complexité temporelle du code ci-dessus est O(N*N) où N est la taille du tableau et la complexité spatiale du code ci-dessus est O(1).
À chaque itération, nous n'avons qu'une différence d'un seul facteur pour le dernier élément uniquement parce que son facteur sera mis à jour à partir de la longueur du tableau - 1 à 0 pour les autres éléments, leur facteur supplémentaire sera ajouté. Nous pouvons donc écrire du code comme. −
Exemple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
Complexité temporelle et complexité spatiale
La complexité temporelle du code ci-dessus est O(N), où N est la taille du tableau et la complexité spatiale du code ci-dessus est O(1). Cette approche est bien meilleure que la précédente.
.Conclusion
Dans ce tutoriel, nous avons implémenté un programme JavaScript pour trouver la somme maximale de i*arr[i] parmi toutes les rotations d'un tableau donné. Nous avons vu deux méthodes, l'une consiste à trouver toutes les rotations d'un tableau donné, puis à comparer les résultats de leurs expressions i*arr[i]. Dans la deuxième méthode, nous réduisons la complexité temporelle de O(N*N) à O(N) en utilisant des méthodes mathématiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Remplacer les caractères de chaîne en javascript

Tutoriel de configuration de l'API de recherche Google personnalisé

Créez vos propres applications Web Ajax

8 Superbes plugins de mise en page JQuery Page

Qu'est-ce que & # x27; ceci & # x27; en javascript?

Améliorez vos connaissances jQuery avec le spectateur source

10 feuilles de triche mobiles pour le développement mobile
