力扣|Q997找法官FindTheTownJudge

Q997FindTheTownJudge

简介

小镇里有 n 个人,按从 1n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。

如果小镇法官真的存在,那么:

小镇法官不会信任任何人。
每个人(除了小镇法官)都信任这位小镇法官。
只有一个人同时满足属性 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

https://leetcode.cn/problems/find-the-town-judge

解题思路

通过图的入度和出度来解题,根据题意,a信任b,则a的出度增加1,b的入度增加1。这样只有当一个人满足出度为0(不信任任何人),入度为n-1(除法官都信任法官)的时候,这个人就是法官。

代码

public class Q997FindTheTownJudge {

    public int findJudge(int n, int[][] trust) {

        int[] inEdges = new int[n+1];
        int[] outEdges = new int[n+1];
        for (int[] ints : trust) {
            outEdges[ints[0]]++;
            inEdges[ints[1]]++;
        }

        for (int i = 1; i < n+1; i++) {
            if (inEdges[i] == n-1 && outEdges[i] == 0){
                return i;
            }
        }
        return -1;
    }
}

测试

public class Q997FindTheTownJudgeTest {

    private Q997FindTheTownJudge q = new Q997FindTheTownJudge();

    @Test
    public void test1() {
        assertEquals(2, q.findJudge(2, new int[][]{{1,2}}));
    }

    @Test
    public void test2() {
        assertEquals(3, q.findJudge(3, new int[][]{{1,3},{2,3}}));
    }

    @Test
    public void test3() {
        assertEquals(-1, q.findJudge(3, new int[][]{{1,3},{2,3},{3,1}}));
    }
}

提交结果

力扣|Q997找法官FindTheTownJudge

Original: https://www.cnblogs.com/mrystar/p/16581784.html
Author: Mr耀
Title: 力扣|Q997找法官FindTheTownJudge

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586251/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Redis入门与实践(附项目真实案例代码)

    我是3y,一年 CRUD经验用十年的 markdown程序员👨🏻‍💻常年被誉为优质八股文选手 今天继续更新austin项目,如果还没看过该系列的同学可以点开我的历史文章回顾下,在看…

    Java 2023年6月9日
    070
  • 代码审计(2)

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/rayob1/p/16360098.htmlAuthor…

    Java 2023年6月6日
    076
  • Windows Server 2012上安装.NET Framework 3.5

    工具提取( NET3.5安装包 提取码: a123)–来自百度网盘超级会员v4的分享 1.首先,先下载NET 3.5安装包,然后解压到想要安装的位置(比如:C盘下的WIN2012R…

    Java 2023年6月5日
    093
  • vmware虚拟机备忘录

    虚拟机拷贝自其他服务器,有时候IP,网络都配置正确就是没法ping 通网络,重启虚拟机也没用 此时将网卡删除,重新添加 systemctl restart network 即可 O…

    Java 2023年5月30日
    078
  • 常用的线程池介绍

    线程池: 简介:线程池是用来统一管理线程的,在 Java 中创建和销毁线程都是一件消耗资源的事情,线程池可以重复使用线程,不再频繁的创建、销毁线程。 线程池的作用是提高系统的性能和…

    Java 2023年6月5日
    079
  • xen 虚拟机挂了,宿主机假死的问题追终,全思路

    出问题主机工作环境用的是xenserver6.5集群,有一天上去突然发现一台vm连不上了,想着那就上去xenserver重启虚拟机,结果强制重启不能成功,就上去宿主机查询磁盘空间 …

    Java 2023年5月30日
    094
  • Gson解析:java.lang.IllegalArgumentException: declares multiple JSON fields named status 问题的解决

    在一次写定义系统统一返回值的情况下,碰到了java.lang.IllegalArgumentException: declares multiple JSON fields nam…

    Java 2023年6月13日
    075
  • 深拷贝和浅拷贝

    java代码实现 浅拷贝:你获取 teacher1拷贝后的对象 teacher2,你使用 teacher2去修改某个引用对象会改变之前的对象的引用,相当于将 teacher2的引用…

    Java 2023年6月9日
    072
  • 线程中断interrupt

    public class InterruptThread2 extends Thread{ public static void main(String[] args) { try…

    Java 2023年5月30日
    082
  • 复试项目规划

    面试。采用综合性、开放性的能力型试题,试题由考生随机抽取,面试时间为每位考生25分钟左右。主要内容为三部分: ①外语听力、口语测试,测试时间为每位考生5分钟左右,满分100分,60…

    Java 2023年6月5日
    055
  • SQLyog 13.1.1.0注册码证书秘钥

    注册信息:Name:(用户名随意) License Key: Professional: 8e053a86-cdd3-48ed-b5fe-94c51b3d343cEnterpris…

    Java 2023年6月9日
    0119
  • Spring Cloud Alibaba 使用Gateway作为服务网关

    从没有网关的角度来看后台如有N个服务,那么前端则需要对接N个服务;只要后台修改IP或者端口等任何信息那么前端也需要修改。当服务对接了网关后前端只需要统一调用网关入口即可,具体调用那…

    Java 2023年6月5日
    092
  • IDEA中sout快捷键无效问题

    新手当在一个类文件中进行了一些操作之后,会造成 sout快捷命令无法自动生成。比如操作了 import引入其它包之后。主要是对IDEA操作的不熟悉。 解决办法 Original: …

    Java 2023年6月9日
    0111
  • Django登陆以后重定向到请求登陆的页面

    登陆和注销操作在网页编程上很常见,这两个操作经常需要在操作成功以后转入发出请求的页面。 比如用户正在浏览一篇文章,发现下载该文章的附件需要登录才能进行,这时候点击登陆链接转入登陆页…

    Java 2023年5月29日
    072
  • Docker 常用操作

    .Docker的基本操作 1.镜像操作 1.1.镜像名称 首先来看下镜像的名称组成: 镜名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是la…

    Java 2023年6月7日
    085
  • Redis的安装使用

    @Test public void testKey() throws Exception { //创建客户端指定连接服务器端主机ip和端口,端口不指定时默认使用6379 Jedis…

    Java 2023年6月7日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球