Maison  >  Article  >  développement back-end  >  Comment calculer la somme de deux nombres dans un tableau égal à une valeur fixe en PHP

Comment calculer la somme de deux nombres dans un tableau égal à une valeur fixe en PHP

PHPz
PHPzoriginal
2023-04-20 13:53:54711parcourir

PHP est un langage de script côté serveur très couramment utilisé. Nous utilisons souvent des tableaux pendant le processus de développement. Dans les tableaux, nous rencontrerons certains problèmes, comme comment calculer la combinaison de deux nombres dans le tableau dont la somme est égale à une valeur fixe. Il s'agit d'un problème très courant et cet article explique comment le résoudre.

1. Description du problème

Étant donné un tableau entier nums et une cible entière, trouvez deux nombres dans le tableau dont la somme est égale à la cible.

Par exemple, étant donné nums = [2, 7, 11, 15], target = 9, car nums [0] + nums [1] = 2 + 7 = 9, donc [0, 1] est renvoyé.

2. Solution

Nous pouvons utiliser la méthode de la double boucle pour résoudre ce problème, mais la complexité temporelle est trop élevée et elle n'est pas assez efficace. Voici une méthode plus efficace : utiliser une table de hachage.

Nous pouvons stocker les nombres parcourus dans la table de hachage et déterminer s'il existe un autre nombre dans la table de hachage qui est égal à la cible moins le nombre actuel. S'il existe, vous pouvez obtenir la somme des deux nombres comme objectif.

L'implémentation spécifique est la suivante :

function twoSum($nums, $target) {
    $map = [];
    $len = count($nums);

    for ($i = 0; $i < $len; $i++) {
        $diff = $target - $nums[$i];
        if (isset($map[$diff])) {
            return [$map[$diff], $i];
        }
        $map[$nums[$i]] = $i;
    }
    return [-1, -1];
}

$nums = [2, 7, 11, 15];
$target = 9;
$res = twoSum($nums, $target);
print_r($res);

3. Description du code

1 Tout d'abord, nous définissons une table de hachage $map et l'initialisons comme un tableau vide.

2. Ensuite, nous définissons le tableau $nums et la valeur cible $target, et $len est la longueur du tableau.

3. Ensuite, nous utilisons une boucle for pour parcourir le tableau $nums Chaque fois qu'un nombre est parcouru, le résultat de la soustraction du nombre de la valeur cible $target est $diff.

4. S'il y a un autre nombre dans $map qui est égal à $diff, cela signifie que la somme de deux nombres est $target, et nous pouvons renvoyer les indices de ces deux nombres.

5. S'il n'existe pas, stockez le numéro parcouru dans $map et passez au cycle suivant.

6. Enfin, si aucune combinaison de chiffres répondant aux exigences n'est trouvée pendant toute la boucle, [-1, -1] sera renvoyé.

4. Résumé

Cet article présente l'utilisation de tables de hachage pour résoudre le problème selon lequel la somme de deux nombres dans un tableau PHP est égale à une valeur fixe. En utilisant une table de hachage, nous pouvons trouver la combinaison de nombres qui répond aux exigences dans une boucle, avec une complexité temporelle de O(n).

De plus, nous devons également prêter attention à certains cas extrêmes, comme le cas où le tableau est vide et la longueur est de 1.

J'espère que cet article sera utile aux lecteurs qui débutent avec php.

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!

Déclaration:
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