zoukankan      html  css  js  c++  java
  • LeetCode——找到小镇的法官

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

    • 每个人(除了小镇法官外)都信任小镇的法官。
    • 只有一个人同时满足属性 1 和属性 2 。
    • 给定数组 trust,该数组由信任对 trust[i] = [a, b] 组成,表示标记为 a 的人信任标记为 b 的人。
      如果小镇存在秘密法官并且可以确定他的身份,请返回该法官的标记。否则,返回 -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
    示例 4:
    输入:N = 3, trust = [[1,2],[2,3]]
    输出:-1
    示例 5:
    输入:N = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]]
    输出:3

    A:
    这个题很简单,就是找到入度和出度差值为N-1的位置。入度为0,出度为N-1.

        public int findJudge(int N, int[][] trust) {
            if (N <= 1)
                return N;
            int[][] judge = new int[N + 1][2];
            for (int i = 0; i <= N; i++) {
                Arrays.fill(judge[i], 0);
            }
            for (int[] t : trust) {
                judge[t[0]][0]++;
                judge[t[1]][1]++;
            }
            for (int i = 1; i <= N; i++) {
                if (judge[i][1] - judge[i][0] == N - 1)
                    return i;
            }
            return -1;
        }
    

    记这个题主要是为了记录“七桥问题”。
    七桥问题主要满足以下条件:
    对于一个连通图,通常把从某结点出发一笔画成所经过的路线叫做欧拉路。人们又通常把一笔画成回到出发点的欧拉路叫做欧拉回路。具有欧拉回路的图叫做欧拉图。
    凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为终点画完此图。
    凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另一个奇点为终点。
    ⒊其他情况的图都不能一笔画出。(奇点数除以二便可算出此图需几笔画成。)

  • 相关阅读:
    javascript 将中文符号转换成英文符号
    js 函数定义的2种方式
    javascript 面向对象编程(工厂模式、构造函数模式、原型模式)
    10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)
    流接口驱动程序的工作原理和开发步骤嵌入式
    android开发面试题
    ORACLE-014:oracle中查看DBLinkpassword
    Java相关知识(一)
    Android 中模仿 Twitter 实现 Toolbar Indicator
    使用excel进行数据挖掘(3)----类别检測
  • 原文地址:https://www.cnblogs.com/xym4869/p/13340001.html
Copyright © 2011-2022 走看看