目标点入度 == N - 1,出度 = 0
class Solution {
public:
int findJudge(int N, vector<vector<int>>& trust) {
int indegree[N + 1], outdegree[N + 1];
memset(indegree, 0, sizeof(indegree));
memset(outdegree, 0, sizeof(outdegree));
for(auto i : trust)
++outdegree[i[0]], ++indegree[i[1]];
for(int i = 1; i <= N; ++i)
if(indegree[i] == N - 1 && !outdegree[i])
return i;
return -1;
}
};
本文介绍了一个寻找法官的算法实现,通过分析信任关系网络,找出唯一一个入度为N-1且出度为0的节点,该节点即为众人公认的法官。算法首先初始化两个数组分别记录每个节点的入度和出度,然后遍历信任关系列表更新这两个数组,最后再次遍历节点数组检查符合条件的法官节点。
361

被折叠的 条评论
为什么被折叠?



