1574. Le sous-tableau le plus court à supprimer pour trier le tableau
Difficulté :Moyen
Sujets : Tableau, deux pointeurs, recherche binaire, pile, pile monotone
Étant donné un tableau d'entiers arr, supprimez un sous-tableau (peut être vide) de arr de telle sorte que les éléments restants dans arr soient non décroissants.
Renvoyer la longueur du sous-tableau le plus court à supprimer.
Un sous-tableau est une sous-séquence contiguë du tableau.
Exemple 1 :
Exemple 2 :
Exemple 3 :
Contraintes :
Indice :
Solution :
Nous pouvons utiliser des techniques de tri et de recherche binaire. Voici le plan :
Approche à deux indicateurs :
Pile monotone :
Étapes :
Optimisation :
Implémentons cette solution en PHP : 1574. Le sous-tableau le plus court à supprimer pour trier le tableau
Explication:
Préfixe et suffixe non décroissants les plus longs :
- Le préfixe est déterminé en parcourant le tableau depuis le début jusqu'à ce que les éléments soient dans un ordre non décroissant.
- De même, le suffixe est déterminé en parcourant depuis la fin.
Suppression minimale initiale :
- Calculez la longueur de suppression en ne gardant que le préfixe ou le suffixe.
Fusion du préfixe et du suffixe :
- Utilisez deux pointeurs (i pour préfixe et j pour suffixe) pour trouver le plus petit sous-tableau à supprimer de telle sorte que le dernier élément du préfixe soit inférieur ou égal au premier élément du suffixe.
Résultat du retour :
- Le résultat est la longueur minimale du sous-tableau à supprimer, calculée comme la plus petite entre la suppression initiale ou la fusion du préfixe et du suffixe.
Complexité
Cette solution trouve efficacement le sous-tableau le plus court à supprimer pour trier le tableau en utilisant une technique à deux pointeurs, et elle gère de grands tableaux jusqu'à la contrainte de 10^5 éléments.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur 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!