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

众里寻他千百度:名流问题 :: labuladong的算法小抄 (gitee.io)

class Solution {
public: int findJudge(int n, vector<vector<int>>& trust) {vector<vector<int>> graph(n+1,vector<int>(n+1,0));for(vector<int> relation:trust)//建立邻接矩阵{int p=relation[0];int q=relation[1];graph[p][p]=1;//正对角线元素置为1,自己相信自己graph[q][q]=1;graph[p][q]=1;}if(n==1)//只有一个人,那他肯定是法官return 1;int cand=1;//假设法官是1for(int other=2;other<=n;other++){if(graph[cand][other])//如果法官信任其他人,那他肯定不是法官,再假设法官是other{cand=other;}}for(int other=1;other<=n;other++)//现在的cand是排除的最后结果,但不能保证一定是法官{if(cand==other)//正对角线元素,也就是自己,不需要做下面的判断continue;if(graph[cand][other]||!graph[other][cand])//法官信任其他人或者其他人不信任法官,说明cand不是法官,即没有法官{return -1;}}return cand;}
};

997.找到小镇的法官(名流问题)相关推荐

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

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

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

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

  3. leetcode 997 找到小镇的法官

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

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

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

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

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

  6. 997. 找到小镇的法官

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

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

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

  8. 每日一题 leetcode 997. 找到小镇的法官 java

    class Solution {public int findJudge(int n, int[][] trust) {if(trust.length==0){if(n==1) return 1;el ...

  9. 2022-4-6 Leetcode 997.找到小镇的法官——【原来是图的问题啊~】

    第一版,原来其他人可以互相信任. class Solution {public:int findJudge(int n, vector<vector<int>>& tr ...

最新文章

  1. “新一代城市大脑建设与发展“专家研讨会
  2. C# partial 关键字的使用
  3. python中cookies怎么用_Cookie在python爬虫中怎么用?Cookielib又是什么?
  4. 软件工程实验报告一模板
  5. Python字符串逆序输出
  6. Python list列表groupby分组用法
  7. win10计算机磁盘图标,主编教你win10系统无法正常显示硬盘图标的方法
  8. CATIA二次开发—强大的Selection
  9. puzzle(1411)《文字》拼单词、一字不落、汉字魔法
  10. 图形学中的光和辐射学(Radiometry)
  11. php gd库 缩小图片_【源码分享】PHP中GD库实现图片等比例缩放
  12. iPhone 13锁屏无法收到微信通知提示怎么解决?
  13. OpenGL三维模型+常见错误
  14. Mask TextSpotter 算法笔记
  15. 「开源学」:如何分门别类理解开源
  16. 知识点01、2022版MyBatisPlus教程(一套玩转mybatis-plus) - 1.01-MyBatis-Plus简介
  17. defer script
  18. VMware ESX Server 服务器数据恢复实战--攻破VMFS文件系统
  19. matlab在c盘有缓存文件夹吗,上网看电影时,文件是缓存在C盘的什么文件夹里?
  20. 大聚会——CSS选择器

热门文章

  1. hibernate简介介绍
  2. greenplum 递归函数
  3. 如何重新排列pdf的顺序?
  4. V20变频器MODBUS-RTU通信和内置PID应用
  5. CVE-2021-21315 Linux sudoNode.js命令注入
  6. jQuery实现上传图片的预览
  7. 无线信号RSSI分析
  8. Linux三剑客awk数组、判断、循环
  9. Magica Cloth 属性介绍
  10. OpenGL 9点圆 三角形垂心/垂足 三角形中线