找到小镇的法官
力扣 997. 找到小镇的法官
题目说明
在一个小镇里,按从 1 到 n 为 n 个人进行编号。传言称,这些人中有一个是小镇上的秘密法官。
如果小镇的法官真的存在,那么:
小镇的法官不相信任何人。
每个人(除了小镇法官外)都信任小镇的法官。
只有一个人同时满足条件 1 和条件 2 。
给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示编号为 a 的人信任编号为 b 的人。
如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的编号。否则,返回 -1。
提示:
1 <= numBottles <= 1002 <= numExchange <= 100
示例
示例 1:
1 | 输入:n = 2, trust = [[1,2]] |
示例 2:
1 | 输入:n = 3, trust = [[1,3],[2,3]] |
示例 3:
1 | 输入:n = 3, trust = [[1,3],[2,3],[3,1]] |
示例 4:
1 | 输入:n = 3, trust = [[1,2],[2,3]] |
示例 5:
1 | 输入:n = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]] |
笔者理解
此题是一道数组算法问题,在力扣题库中被定义为简单题。
解法
当笔者阅读完此题后,发现此题不会出现某个人信任自己的情况,所以我们统计每个人信任和被信任的情况即可,让我们来看看具体如何实现的吧。
实现
1 | class Solution { |
时间和空间效率还行,可见此解法还比较适合此题。
总结
本题是今天的每日一题,难度是为简单,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!









