2924. Trouver Champion II
Difficulté :Moyen
Thèmes : Graphique
Il y a n équipes numérotées de 0 à n - 1 dans un tournoi ; chaque équipe est également un nœud dans un DAG.
Vous recevez l'entier n et un tableau d'entiers 2D indexé 0 de longueur m représentant le DAG, où >dges[i] = [u i, vi] indique qu'il y a un avantage dirigé de l'équipe ui à l'équipe vi dans le graphique.
Un bord dirigé de a vers b dans le graphique signifie que l'équipe a est plus forte que l'équipe b et que l'équipe b est plus faible que l'équipe a.
L'équipe a sera la championne du tournoi s'il n'y a pas d'équipe b qui est plus forte que l'équipe a.
Renvoyer l'équipe qui sera le champion du tournoi s'il y a un champion unique, sinon, retourner -1.
Remarques
Exemple 1 :
Exemple 2 :
Contraintes :
Indice :
Solution :
Nous devons identifier la ou les équipes avec un en degré de 0 dans le graphique acyclique dirigé (DAG) donné. Les équipes sans avantage entrant représentent des équipes qu'aucune autre équipe n'est plus forte, ce qui en fait des candidats au titre de champion. S’il y a exactement une équipe avec un in-degré de 0, c’est l’unique champion. S'il y a plusieurs ou aucune équipe de ce type, le résultat est -1.
Implémentons cette solution en PHP : 2924. Trouver Champion II
Explication:
Analyse des entrées :
- n est le nombre d'équipes.
- edge est la liste des arêtes dirigées dans le graphique.
Initialiser In-degree :
- Créez un tableau enDegré de taille n initialisé à 0.
Calculer le diplôme :
- Pour chaque bord [u, v], incrémentez le degré entrant de v (l'équipe v a un bord entrant supplémentaire).
Trouver des candidats :
- Parcourez le tableau inDegree et collectez les indices où le degré en est de 0. Ces indices représentent des équipes sans autre équipe plus forte.
Déterminer le champion :
- Si exactement une équipe a un degré 0, c'est l'unique champion.
- Si plusieurs équipes ou aucune équipe n'a un degré 0, renvoyez -1.
Exemple de procédure pas à pas
Exemple 1 :
Complexité temporelle :
Complexité spatiale :
Cette solution est efficace et fonctionne dans les limites données.
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!