题目

小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。
如果小镇法官真的存在,那么:
小镇法官不会信任任何人。
每个人(除了小镇法官)都信任这位小镇法官。
只有一个人同时满足属性 1 和属性 2 。
给你一个数组 trust ,其中 trust[i] = [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人。
如果小镇法官存在并且可以确定他的身份,请返回该法官的编号;否则,返回 -1 。
示例 1:
输入:n = 2, trust = [[1,2]]
输出:2
示例 2:
输入:n = 3, trust = [[1,3],[2,3]]
输出:3
示例 3:
输入:n = 3, trust = [[1,3],[2,3],[3,1]]
输出:-1
提示:
1 <= n <= 1000
0 <= trust.length <= 10^4
trust[i].length == 2
trust 中的所有trust[i] = [ai, bi] 互不相同
ai != bi
1 <= ai, bi <= n
来源:力扣(LeetCode)

j解题思路

  根据题目可知 [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人,而法官不相信任何人所以法官不能是ai,另外所有ai对应的bi中必须有一个是法官,也就是不同ai对应的bi有一个公共元素。我们可以采用集合将ai和bi做成两个集合,集合里的元素不会重复;那么bi的集合和ai的集合差集必须是一个元素,否则就会存在另外一个人不相信所有人,也就是法官不满足第二个条件(所有人都相信他一个),如果求出差集是一个人的话,还需要验证是不是所有的人(n-1个)都信任他。

class Solution:def findJudge(self, n: int, trust: List[List[int]]) -> int:if trust==[]:if n==1:return 1else:return-1a=set()  #ai集合b=set()  #bi集合for i in trust:a.add(i[0])b.add(i[1])if len(b-a)==1:temp=(b-a).pop()for i in trust:  #如果所有人都相信他那么n到最后只会是1if i[1]==temp:n-=1return -1 if n!=1 else tempelse:return -1

LeetCode简单题之找到小镇的法官相关推荐

  1. leetcode(力扣) 997. 找到小镇的法官 (剧本杀推理)

    文章目录 题目描述: 思路分析 完整代码: 题目描述: 小镇里有 n 个人,按从 1 到 n 的顺序编号.传言称,这些人中有一个暗地里是小镇法官. 如果小镇法官真的存在,那么: 小镇法官不会信任任何人 ...

  2. LeetCode简单题之找到所有数组中消失的数字

    题目 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果. 示例 1 ...

  3. LeetCode简单题之找到最近的有相同 X 或 Y 坐标的点

    题目 给你两个整数 x 和 y ,表示你在一个笛卡尔坐标系下的 (x, y) 处.同时,在同一个坐标系下给你一个数组 points ,其中 points[i] = [ai, bi] 表示在 (ai, ...

  4. 【快乐水题】997. 找到小镇的法官

    原题: 力扣链接:997. 找到小镇的法官 题目简述: 在一个小镇里,按从 1 到 n 为 n 个人进行编号.传言称,这些人中有一个是小镇上的秘密法官. 如果小镇的法官真的存在,那么: 小镇的法官不相 ...

  5. Python3求解找到小镇的法官问题

    Python3求解找到小镇的法官问题 原题 https://leetcode-cn.com/problems/find-the-town-judge/ 题目: 在一个小镇里,按从 1 到 N 标记了 ...

  6. 997. 找到小镇的法官_小镇...

    997. 找到小镇的法官 Bethlehem Media Net strives to be the "voice of the voiceless" bringing the s ...

  7. 找到小镇的法官(社会名流问题)

    问题 力扣:找到小镇的法官 这个问题可以抽象成:在 n × n n×n n×n 矩阵中,是否存在 i i i,使得 第 i i i 列除第 i i i 项以外所有项都是 1 1 1: 第 i i i ...

  8. leetcode 997 找到小镇的法官

    https://leetcode-cn.com/problems/find-the-town-judge/ 题目 在一个小镇里,按从111到nnn为nnn个人进行编号.传言称,这些人中有一个是小镇上的 ...

  9. LeetCode 997. 找到小镇的法官(图的出度和入度)

    1. 题目 在一个小镇里,按从 1 到 N 标记了 N 个人.传言称,这些人中有一个是小镇上的秘密法官. 如果小镇的法官真的存在,那么: 小镇的法官不相信任何人. 每个人(除了小镇法官外)都信任小镇的 ...

最新文章

  1. 跟我斗图,我用Python爬虫下载几个G的表情砸死你
  2. Ecol. Lett.:写给实践生态学家的β多样性分析指南 | 朝花夕拾
  3. 混编ObjectiveC++
  4. 6工程文件夹作用_data_dragon数据工程小工具收集
  5. java struts 框架_java中struts 框架的实现
  6. 尚硅谷和尚学堂的区别_在北京尚学堂学习的009天
  7. 腾讯、字节跳动展开拉锯战;网易云音乐称酷狗抄袭;谷歌不再开发云游戏 | 极客头条...
  8. 菜鸟学python-基础(2)
  9. 剑指offer面试题[12]-打印1到最大的n位数
  10. 经典排序 —— 选择排序
  11. selenium chromedriver usage
  12. 7 种 JVM 垃圾收集器,Java语言实现核心,看完我跪了
  13. 医疗卫生行业中的领域模型
  14. Codesys中国官网下载中心
  15. k8s 部署spring cloud项目
  16. 如何使用html写一个简单的登录页面
  17. win10远程控制ubuntu16.04
  18. HelloWorld Detail Earth 3D Engine(二)城市渲染
  19. 织梦后台内容编辑器不显示
  20. dropout原理解析

热门文章

  1. mysql修改校对集_MySQL 教程之校对集问题
  2. 2022-2028年中国铁路机车行业投资分析及前景预测报告
  3. Gin 框架学习笔记(03)— 输出响应与渲染
  4. Git 常用操作(6)- 推送到远程仓库(git push)删除远程分支(git push origin --delete)
  5. SpringBoot2.3 修改响应头、添加更新token、解决在过滤器中修改失败
  6. 在linux(centos7)下本地仓库的搭建
  7. pycharm debug后会出现 step over /step into/step into my code /force step into /step out 分别表示...
  8. MinkowskiPooling池化(下)
  9. YOLO v1到YOLO v4(上)
  10. Error:This Gradle plugin requires Studio 3.0 minimum