179. Le plus grand nombre
Difficulté :Moyen
Sujets :Array, String, Greedy, Sorting
Étant donné une liste de nombres entiers non négatifs, disposez-les de telle sorte qu'ils forment le plus grand nombre et renvoyez-le.
Comme le résultat peut être très volumineux, vous devez donc renvoyer une chaîne au lieu d'un entier.
Exemple 1 :
Exemple 2 :
Contraintes :
Solution :
Nous devons comparer les nombres en fonction de leurs résultats concaténés. Pour deux nombres a et b, nous comparons ab (a concaténé avec b) et ba (b concaténé avec a), et décidons de l'ordre en fonction duquel forme un plus grand nombre.
Implémentons cette solution en PHP : 179. Le plus grand nombre
Explication:
- usort($nums, $comparator) : Nous trions le tableau à l'aide d'un comparateur personnalisé. Pour chaque paire de nombres a et b, nous comparons les chaînes concaténées a . b et b . une.
- Logique de comparaison : Le strcmp($order2, $order1) garantit que nous obtenons un ordre décroissant basé sur les chaînes concaténées.
- Edge Case Handling : Si le premier caractère de la chaîne concaténée résultante est 0, nous renvoyons "0", ce qui se produit lorsque tous les éléments du tableau sont des zéros.
- Complexité temporelle : le tri des nombres prend O(n log n), et leur concaténation prend O(n), où n est le nombre de nombres dans le tableau d'entrée.
Cette solution gère efficacement les contraintes et renvoie le plus grand nombre possible sous forme de chaîne.
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!