『图』找到小镇的法官997

题目相关

  • 原题链接:997. 找到小镇的法官 - 力扣(LeetCode)
  • 涉及知识:图、有向图
  • 题目难度:★

题目解读

根据题意,我们可以很明显的看出需要用到有向图这一数据结构,而我们需要从从图中遍历查找是否满足入度为N-1并且出度为0的点。

Python相关

我们可以简单地用二维数组来模拟一个图,也可以用一个值类型的列表的字典来模拟。
但在本题中,由于只会涉及到出入度等并不够精细的数据量,所以我们可以简单的只用数组+集合模拟即可。

具体实现

具体实现如下:

class Solution:
    def findJudge(self, N: int, trust: List[List[int]]) -> int:
        votes = [0] * N
        normal = set()
        for a, b in trust:
            normal.add(a)
            votes[b - 1] += 1
        for inx, num in enumerate(votes):
            if num == N - 1 and inx + 1 not in normal:
                return inx + 1
        return -1

你可能感兴趣的:(『图』找到小镇的法官997)