2924. Finde Champion II
Schwierigkeit:Mittel
Themen:Grafik
In einem Turnier gibt es n Teams mit den Nummern 0 bis n - 1; Jedes Team ist auch ein Knoten in einem DAG.
Sie erhalten die Ganzzahl n und ein 0-indiziertes 2D-Integer-Array mit Kanten der Länge m, das den DAG darstellt, wobei >dges[i] = [u i, vi] zeigt an, dass es einen gerichteten Vorsprung vom Team gibt ui zum Team vi in der Grafik.
Eine gerichtete Kante von a nach b im Diagramm bedeutet, dass Team a stärker als Team b und Team b schwächer als Team a ist.
Team A wird Meister des Turniers, wenn es kein Team B gibt, das stärker ist als Team A.
Geben Sie das Team zurück, das der Champion des Turniers sein wird, wenn es einen einzigartigen Champion gibt, andernfalls geben Sie -1 zurück.
Notizen
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir müssen die Teams mit einem In-Grad von 0 im gegebenen gerichteten azyklischen Graphen (DAG) identifizieren. Teams ohne eingehende Vorteile stellen Teams dar, denen kein anderes Team stärker ist, was sie zu Kandidaten für den Titel macht. Wenn es genau ein Team mit einem In-Grad von 0 gibt, ist es der einzigartige Champion. Wenn es mehrere oder keine solchen Teams gibt, ist das Ergebnis -1.
Lassen Sie uns diese Lösung in PHP implementieren: 2924. Finde Champion II
Erläuterung:
Eingabeanalyse:
- n ist die Anzahl der Teams.
- Kanten ist die Liste der gerichteten Kanten im Diagramm.
In-Grad initialisieren:
- Erstellen Sie ein Array in Grad der Größe n, initialisiert auf 0.
In-Grad berechnen:
- Erhöhen Sie für jede Kante [u, v] den In-Grad von v (Team v hat eine weitere eingehende Kante).
Kandidaten finden:
- Durchlaufen Sie das inDegree-Array und sammeln Sie Indizes, bei denen der In-Grad 0 ist. Diese Indizes repräsentieren Teams ohne andere stärkere Teams.
Champion bestimmen:
- Wenn genau ein Team den In-Grad 0 hat, ist es der einzigartige Champion.
- Wenn mehrere Teams oder kein Team den In-Grad 0 haben, geben Sie -1 zurück.
Beispiel-Komplettlösung
Beispiel 1:
Zeitkomplexität:
Weltraumkomplexität:
Diese Lösung ist effizient und funktioniert innerhalb der gegebenen Einschränkungen.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonFinde Champion II. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!