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;
        }
    

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

  • 相关阅读:
    PNG文件格式具体解释
    opencv2对读书笔记——使用均值漂移算法查找物体
    Jackson的Json转换
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 单词接龙
  • 原文地址:https://www.cnblogs.com/xym4869/p/13340001.html
Copyright © 2011-2022 走看看