题目:小镇里有 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

程序说明:
方法一: 因为小镇法官不相信任何人,所以小镇法官只可能在[ai,bi]的bi的位置,因此首先排除掉a列表里面等于ai的元素,留下的便是小镇法官,接着判断bi为小镇法官(即信任法官的)有几个,最后若个数等于n-1即可返回法官。

方法二:使用了有向图的思想,在法官存在的情况下,因为法官不相信任何人,因此法官这个节点的入度是 n-1,出度是 0。我们可以遍历每个节点的入度和出度,如果找到一个符合条件的节点,由于题目保证只有一个法官,我们可以直接返回结果;如果不存在符合条件的点,则返回 -1。

全部代码:

class Solution:def findJudge(self, n: int, trust: List[List[int]]) -> int:a=[]for i in range(n):a.append(i+1)for i in range(len(trust)):if trust[i][0] in a:a.remove(trust[i][0])for i in a:b=0for j in trust:if j[1]==i:b+=1if b ==n-1:return ireturn -1

方法二:

class Solution:def findJudge(self, n: int, trust: List[List[int]]) -> int:inDegrees = Counter(y for _, y in trust)outDegrees = Counter(x for x, _ in trust)return next((i for i in range(1, n + 1) if inDegrees[i] == n - 1 and outDegrees[i] == 0), -1)

来源:力扣(LeetCode)

每日一题python90:找到小镇的法官相关推荐

  1. LeetCode简单题之找到小镇的法官

    题目 小镇里有 n 个人,按从 1 到 n 的顺序编号.传言称,这些人中有一个暗地里是小镇法官. 如果小镇法官真的存在,那么: 小镇法官不会信任任何人. 每个人(除了小镇法官)都信任这位小镇法官. 只 ...

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

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

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

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

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

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

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

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

  6. leetcode 997 找到小镇的法官

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

  7. 力扣题目——997. 找到小镇的法官

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 在一个小镇里,按从 1 到 n 为 n 个人进行编号.传言称,这些人中有一个 ...

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

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

  9. 997. 找到小镇的法官

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

最新文章

  1. mysql查看数据文件ibdata_如何从 ibdata文件 恢复 MySQL 数据库
  2. qt系统托盘显示、无主窗体
  3. mysql awr v1.0.1发布
  4. 数据中心制冷基本原则及节能方案
  5. apply()与call()
  6. springcloud gateway 源码解析、请求响应流程、第三方响应结果在 gateway 的经过
  7. 写帮助大家学习的小框架
  8. 文件上传漏洞原理与实例测试
  9. UVA1363 LA3521 POJ2800 ZOJ2646 Joseph‘s Problem【约瑟夫环+数学】
  10. ECMAScript 6 基础入门
  11. 430单片机实现三人投票表决器_基于51单片机的三人表决器设计.doc
  12. 如何使用JavaScript重定向到其他网页?
  13. B站粉丝数监控(Python实现)
  14. 代码里颜色设置表RGB+CMYK
  15. 蓝桥杯 画积木 /洛谷 P1990 墙壁覆盖
  16. 抖音二面:计算机网络-应用层
  17. 小目标检测的相关挑战与问题
  18. 生活中的ps!女朋友把菜花烤了一下,结果......
  19. python批量提取word指定内容_python批量提取word内信息
  20. 你还在盲目跟风学Python?不要盲目!某华大学教授有话要说

热门文章

  1. html 自动隐藏属性,hidden
  2. Microsoft Enterprise Library 简介与请大家下载Microsoft Enterprise Library 5.0体验微软最新技术应用于企业信息平台
  3. 跳出多层for循环的几种方式
  4. 中级软件设计师考试错题及知识点整理
  5. 工作5年的阿里Java程序员分享从业心得总结,写给还在迷茫的朋友
  6. 国家lpv9服务器包括哪些项目,ipv6与ipv9什么关系
  7. 【AUTOSAR-CanTp】-2.10-复用UDS/OBD诊断物理/功能寻址/响应CAN_ID--Extended addressing扩展寻址
  8. 中科院计算所培训中心2017年第一季度课程安排
  9. NASA卫星拍摄地球夜晚的照片
  10. JAVA实现图片质量压缩和加水印