一.题目:
寻找小镇子里的唯一一个法官,如果找不到就返回-1.
二.解题思路:
建立一个入度数组和一个出度数组,遍历图上的每一条边,更新入度数组和出度数组.之后遍历这N个节点,当满足入度为0出度为N-1时说明这个节点就是法官.
代码如下:
class Solution(object):
def findJudge(self, N, trust):
"""
:type N: int
:type trust: List[List[int]]
:rtype: int
"""
indegrees = [0]*N
outdegrees = [0]*N
for s in trust:
indegrees[s[0]-1] +=1
outdegrees[s[1]-1] +=1
for i in range(N):
if indegrees[i] == 0 and outdegrees[i] == N-1:
return i+1
return -1