Maison > interface Web > js tutoriel > Programme JavaScript pour calculer des triplets dont la somme est inférieure à une valeur donnée

Programme JavaScript pour calculer des triplets dont la somme est inférieure à une valeur donnée

PHPz
Libérer: 2023-09-24 22:37:02
avant
1538 Les gens l'ont consulté

JavaScript 程序计算总和小于给定值的三元组

Nous allons écrire un programme JavaScript pour compter le nombre de triplets dont la somme est inférieure à une valeur donnée. Ce problème peut être résolu en triant le tableau et en utilisant deux pointeurs pour vérifier les combinaisons possibles. Tout d’abord, nous allons trier le tableau par ordre croissant, puis, pour chaque élément du tableau, nous utiliserons deux pointeurs pour rechercher les triples dont la somme est inférieure à la valeur donnée. Le nombre de ces triples sera le décompte que nous suivrons.

De plus, nous mettrons à jour le décompte et le pointeur en fonction de la somme des triples inférieure ou égale à la valeur donnée. De cette façon, nous pouvons résoudre le problème efficacement avec une complexité temporelle O(n^2). C'est une technique très utile à retenir en cas de problèmes futurs où nous devrons trouver des décomptes pour certaines combinaisons qui satisfont certaines conditions.

Enfin, nous renverrons le nombre de ces triples dont la somme est inférieure à la valeur donnée.

Méthode

  • Tout d’abord, triez le tableau de nombres donné par ordre croissant.

  • Initialisez trois variables : gauche, droite et nombre.

  • Ensuite, utilisez la méthode à deux pointeurs, le pointeur gauche commence à 0 et le pointeur droit commence à la fin.

  • Pour chaque itération, calculez la somme du triplet actuel (élément pointant vers la gauche + élément pointant vers la droite + élément actuel).

  • Si la somme est inférieure à la valeur donnée, incrémentez le décompte et le pointeur gauche.

  • Si la somme est supérieure à la valeur donnée, décrémentez le pointeur droit. Répétez ce processus jusqu'à ce que le pointeur gauche soit plus petit que le pointeur droit.

Exemple

Ceci est un exemple complet de programme JavaScript pour compter le nombre de triplets dont la somme est inférieure à une valeur donnée -

function countTriplets(arr, sum) {
   let count = 0;
   arr.sort((a, b) => a - b); 
   // sorting the array in ascending order
   for (let i = 0; i < arr.length - 2; i++) {
      let left = i + 1;
      let right = arr.length - 1;
      while (left < right) {
         if (arr[i] + arr[left] + arr[right] >= sum) {
         right--;
         } else {
            count += right - left;
            left++;
         }
      }
   }
   return count;
}
const arr = [5, 1, 3, 4, 7];
const sum = 12;
console.log(countTriplets(arr, sum));
Copier après la connexion

Instructions

    La fonction
  • countTriplets prend le tableau arr et la valeur sum comme arguments.

  • La variable
  • count garde une trace du nombre de triples dont la somme est inférieure à sum.

  • arr Trier par ordre croissant à l'aide de la fonction de tri.

  • Boucle externefor (let i = 0; i itère le tableau, avec les pointeurs left et right initialisés à l'index suivant de i et au dernier index du tableau respectivement.

  • while (gauche La boucle continue jusqu'à ce que le pointeur gauche soit supérieur ou égal au pointeur droite.

  • while (gauche La boucle continue jusqu'à ce que le pointeur gauche soit supérieur ou égal au pointeur droit.

  • Dans chaque itération de la boucle while, ​​arr[i], arr[left], et arr[right] sont calculés. Si cette somme est supérieure ou égale à la somme , alors le pointeur droit est décrémenté. Si la somme est inférieure à la sum, alors le count sera incrémenté du nombre d'éléments restants entre les pointeurs left et rightb>, et le pointeur left sera incrémenté.

  • La fonction
  • renvoie la variable count, qui représente le nombre de triplets dont la somme est inférieure à sum.

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!

source:tutorialspoint.com
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