2024.4.13
题目来源
我的题解
方法一 拓扑排序思想
计算每个节点的入度,只有入度为0的节点才可能是冠军,但是若存在多个入度为0的节点,则无法知道谁是冠军,即返回-1.
时间复杂度:O(n)
空间复杂度:O(n)
public int findChampion(int n, int[][] edges) {
int[] indeg=new int[n];
for(int[] t:edges){
int from = t[0];
int to = t[1];
indeg[to]++;
}
int res=-1;
int count=0;
for(int i=0;i<n;i++){
if(indeg[i]==0){
count++;
res=i;
}
}
return count==1?res:-1;
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~