Maison >développement back-end >tutoriel php >. Nombre maximum de morceaux à trier
769. Max de morceaux à trier
Difficulté :Moyen
Sujets :Array, Stack, Greedy, Tri, Monotonic Stack
Vous recevez un tableau d'entiers arr de longueur n qui représente une permutation des entiers dans la plage [0, n - 1].
Nous divisons arr en un certain nombre de morceaux (c'est-à-dire des partitions) et trions individuellement chaque morceau. Après les avoir concaténés, le résultat devrait être égal au tableau trié.
Renvoyer le plus grand nombre de morceaux que nous pouvons créer pour trier le tableau.
Exemple 1 :
Exemple 2 :
Contraintes :
Indice :
Solution :
Nous devons trouver le plus grand nombre de morceaux pouvant être formés de telle sorte que chaque morceau puisse être trié individuellement, et une fois concaténé, le résultat est la version triée de l'ensemble du tableau.
Observation clé :
Stratégie :
Étapes :
Implémentons cette solution en PHP : 769. Max de morceaux à trier
Explication:
Initialisation :
- Nous commençons par maxSoFar = -1 pour nous assurer que nous suivons correctement la valeur maximale dans le tableau lorsque nous le parcourons.
- chunks = 0 garde une trace du nombre de morceaux qui peuvent être formés.
Boucle :
- Nous parcourons chaque élément du tableau.
- Pour chaque élément, nous mettons à jour le maxSoFar pour qu'il soit la valeur maximale entre l'élément actuel et le maximum vu précédemment.
- Si maxSoFar == i, cela signifie que le tableau jusqu'à l'index i peut être trié indépendamment et qu'il s'agit d'un morceau valide.
- Nous incrémentons le nombre de morceaux chaque fois que cette condition est vraie.
Retour :
- Enfin, le nombre total de morceaux est renvoyé.
Complexité temporelle :
Pour arr = [1, 0, 2, 3, 4] :
Ainsi, le résultat pour ce cas est 4 car nous pouvons le diviser en 4 morceaux.
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!