2419. Sous-tableau le plus long avec ET au niveau du bit maximum
Difficulté :Moyen
Sujets :Tableau, manipulation de bits, casse-tête
Vous recevez un tableau d'entiers numériques de taille n.
Considérons un sous-tableaunon videà partir de nombres qui a lemaximumpossibleET au niveau du bit.
Renvoyerla longueur dule plus longde ce sous-tableau.
Le ET au niveau du bit d'un tableau est le ET au niveau du bit de tous les nombres qu'il contient.
Unsous-tableauest une séquence contiguë d'éléments au sein d'un tableau.
Exemple 1 :
Exemple 2 :
Contraintes :
Indice :
Solution :
Décomposons d'abord le problème étape par étape :
Propriétés AND au niveau du bit:
Objectif:
Pour le tableau d'entrée [1,2,3,3,2,2], la valeur maximale est 3. Le sous-tableau contigu le plus long avec seulement 3 est [3,3], qui a une longueur de 2.
Implémentons cette solution en PHP :2419. Sous-tableau le plus long avec ET au niveau du bit maximum
Explication:
- Étape 1: Nous trouvons d'abord la valeur maximale dans le tableau à l'aide de la fonction max() intégrée de PHP.
- Étape 2: Nous initialisons deux variables, $maxLength pour stocker la longueur du sous-tableau le plus long et $currentLength pour suivre la longueur du sous-tableau contigu actuel de la valeur maximale.
- Étape 3: Nous parcourons le tableau :
- Si le nombre actuel est égal à la valeur maximale, nous incrémentons la longueur du sous-tableau actuel.
- Si le nombre actuel n'est pas égal à la valeur maximale, nous vérifions si le sous-tableau actuel est le plus long jusqu'à présent et réinitialisons la longueur.
- Étape finale: Après la boucle, nous nous assurons que si le sous-tableau le plus long est à la fin du tableau, nous le considérons toujours.
- Enfin, nous renvoyons la longueur du sous-tableau le plus long qui contient uniquement la valeur maximale.
Complexité temporelle :
Pour l'entrée [1, 2, 3, 3, 2, 2], la sortie est 2, et pour [1, 2, 3, 4], la sortie est 1, comme prévu.
Cette solution gère les contraintes et résout efficacement le problème.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile auréférentielsur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
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!