i" position ; 4. Recherchez les nombres manquants en définissant la méthode "function MissingNumber($nums) {...}"."/> i" position ; 4. Recherchez les nombres manquants en définissant la méthode "function MissingNumber($nums) {...}".">

Maison  >  Article  >  développement back-end  >  Comment trouver les nombres manquants en PHP

Comment trouver les nombres manquants en PHP

藏色散人
藏色散人original
2022-12-14 09:47:165278parcourir

Comment trouver les nombres manquants en PHP : 1. Créez un exemple de fichier php ; 2. Vérifiez le modèle de croissance des exemples de données ; 3. Utilisez "nums[i] == i" ou "nums[i] > i". " Déterminez l'emplacement de la valeur manquante ; 4. Recherchez le nombre manquant en définissant la méthode "function MissingNumber($nums) {...}".

Comment trouver les nombres manquants en PHP

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.

Comment trouver les nombres manquants en PHP ?

PHP Calculez les nombres manquants de 0 à n-1

Les nombres manquants de 0 à n-1

Tous les nombres d'un tableau trié ascendant de longueur n-1 sont uniques, et chaque nombre est compris entre la plage 0 ~ n-1. Parmi les n nombres compris entre 0 et n-1, il n'y a qu'un seul nombre qui ne figure pas dans le tableau. Veuillez trouver ce nombre.

Exemple 1 :

输入: [0,1,3]
输出: 2

Exemple 2 :

输入: [0,1,2,3,4,5,6,7,9]

Sortie : 8

Idées de résolution de problèmes

Recherche binaire simple, le sens de la question indique clairement que tous les nombres augmentent et que la plage de valeurs de tous les nombres sont compris entre [0, n-1] et sont uniques, nous pouvons donc trouver une telle règle :

Tant que nums[i] == i pendant le processus de requête, alors la valeur manquante doit être du côté droit of i;

Si pendant le processus de requête In nums[i] > i, alors la valeur manquante doit être à gauche donc à la fin, retournez simplement min comme résultat.

Code

class Solution {
    /** * @param Integer[] $nums * @return Integer */
    function missingNumber($nums) {
        $min = 0;
        $max = count($nums) - 1;
        while ($min <= $max) {
            $mid = (int)($min + ($max - $min) / 2);
            $mid == $nums[$mid] ? $min = $mid + 1 : $max = $mid - 1;
        }
        
        return $min;
    }
}

Apprentissage recommandé : "Tutoriel vidéo 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