在一个小镇里,按从 `1` 到 `N` 标记了 `N` 个人。传言称,这些人中有一个是小镇上的秘密法官。 如果小镇的法官真的存在,那么: - 1. 小镇的法官不相信任何人。 - 2. 每个人(除了小镇法官外)都信任小镇的法官。 - 3. 只有一个人同时满足属性 1 和属性 2 。 给定数组 `trust` ,该数组由信任对 `trust[i] = [a, b]` 组成,表示标记为 `a` 的人信任标记为 `b` 的人。 如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的标记。否则,返回 `-1` 。 **示例 1:** ```js 输入:N = 2, trust = [[1,2]] 输出:2 ``` **示例 2:** ```js 输入:N = 3, trust = [[1,3],[2,3]] 输出:3 ``` **示例 3:** ```js 输入:N = 3, trust = [[1,3],[2,3],[3,1]] 输出:-1 ``` 示例 4: **示例 4:** ```js 输入:N = 3, trust = [[1,2],[2,3]] 输出:-1 ``` **示例 5:** ```js 输入:N = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]] 输出:3 ``` **提示:** - `1 <= N <= 1000` - `trust.length <= 10000` - `trust[i]` 是完全不同的 - `trust[i][0] != trust[i][1]` - `1 <= trust[i][0], trust[i][1] <= N` 附赠leetcode可测试地址:[leetcode](https://leetcode-cn.com/problems/find-the-town-judge/solution/liang-chong-fang-shi-zhao-dao-xiao-zhen-de-fa-guan/)
Activity
sisterAn commentedon Jun 15, 2020
解答:利用图
本题是一道典型的有向图问题,不理解图的可以看这篇:初学者应该了解的数据结构 Graph,寻找法官即是寻找 入度为N-1,出度为0的点
时间复杂度:O(N)
空间复杂度:O(N)
另一种解法:
其实法官也是唯一一个 出入度差值为
N-1,所以这里可以简化为寻找出入度差值为N-1时间复杂度:O(N)
空间复杂度:O(N)
leetcode
7777sea commentedon Jun 16, 2020
zhaozhaopeng68 commentedon Jun 16, 2020
huangruitian commentedon Jun 16, 2020
syc666 commentedon Jun 17, 2020
zo11o commentedon Dec 18, 2020