来自北大算法课的Leetcode题解:997. 找到小镇的法官

本题代码:https://github.com/doubleZ0108/Leetcode/blob/master/997.%E6%89%BE%E5%88%B0%E5%B0%8F%E9%95%87%E7%9A%84%E6%B3%95%E5%AE%98.py

  • 解法1(T84% S85%):本质是图的问题。记录每个节点的入度和出度,最终找是否有节点的入度节点总数-1 & 这个节点的出度0 → 他受到其他所有人信任 & 他不信任任何人
class Solution(object):
    def findJudge(self, n, trust):
        """
        :type n: int
        :type trust: List[List[int]]
        :rtype: int
        """
        graph = [[0,0] for _ in range(n+1)]
        for (a,b) in trust:
            graph[a][0] += 1
            graph[b][1] += 1
        for i in range(1, n+1):
            if graph[i][0] == 0 and graph[i][1] == n-1: return i
        return -1

你可能感兴趣的:(leetcode,算法)