1dec88aaf2
Add populate-notes.mjs that fetches problem descriptions and Python/C++ code stubs from LeetCode's GraphQL API. Populated all 197 NeetCode 150 note files with: - Problem description (examples, constraints) - Python code stub (function signature) - C++ code stub (function signature + includes) API responses cached in leetcode/.cache/leetcode/ for instant re-runs.
2.4 KiB
2.4 KiB
TODO 2924. Find Champion II medium
There are n teams numbered from 0 to n - 1 in a tournament; each team is also a node in a DAG.
You are given the integer n and a 0-indexed 2D integer array edges of length m representing the DAG, where edges[i] = [u_{i}, v_{i}] indicates that there is a directed edge from team u_{i} to team v_{i} in the graph.
A directed edge from a to b in the graph means that team a is stronger than team b and team b is weaker than team a.
Team a will be the champion of the tournament if there is no team b that is stronger than team a.
Return the team that will be the champion of the tournament if there is a unique champion, otherwise, return /~-1~./
Notes
- A cycle is a series of nodes
a_{1}, a_{2}, ..., a_{n}, a_{n+1}such that nodea_{1}is the same node as nodea_{n+1}, the nodesa_{1}, a_{2}, ..., a_{n}are distinct, and there is a directed edge from the nodea_{i}to nodea_{i+1}for everyiin the range[1, n]. - A DAG is a directed graph that does not have any cycle.
Example 1:
Input: n = 3, edges = [[0,1],[1,2]]
Output: 0
Explanation: Team 1 is weaker than team 0. Team 2 is weaker than team 1. So the champion is team 0.
Example 2:
Input: n = 4, edges = [[0,2],[1,3],[1,2]]
Output: -1
Explanation: Team 2 is weaker than team 0 and team 1. Team 3 is weaker than team 1. But team 1 and team 0 are not weaker than any other teams. So the answer is -1.
Constraints:
1 <= n <= 100m == edges.length0 <= m <= n * (n - 1) / 2edges[i].length == 20 <= edge[i][j] <= n - 1edges[i][0] != edges[i][1]- The input is generated such that if team
ais stronger than teamb, teambis not stronger than teama. - The input is generated such that if team
ais stronger than teamband teambis stronger than teamc, then teamais stronger than teamc.
TODO Approach
Write your approach here.
TODO Python
class Solution:
def findChampion(self, n: int, edges: List[List[int]]) -> int:
TODO C++
class Solution {
public:
int findChampion(int n, vector<vector<int>>& edges) {
}
};