zoukankan      html  css  js  c++  java
  • 997. 找到小镇的法官

    997. 找到小镇的法官

    在一个小镇里,按从 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

    代码:

    int findC(int N,vector< vector<int> >&paths){
        int n=paths.size();
        vector<int>G1[N+1],G2[N+1];
        for (int i = 0; i < n; i++)
        {
            //G1保存被相信矩阵
            G1[paths[i][1]].push_back(paths[i][0]);
            //G2保存相信矩阵
            G2[paths[i][0]].push_back(paths[i][1]);
        }
        for (int i = 1; i <= N; i++)
        {
            //只要被相信矩阵==N-1 相信矩阵为0即为法官
            if (G1[i].size()==N-1&&G2[i].size()==0)
                return i;
        }
        return -1;
    }

     

    因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/13732572.html

  • 相关阅读:
    Servlet和Filter的url匹配
    iterator的用法
    python学习笔记
    python的序列之列表
    java开发实战学习笔记3
    java学习笔记4
    Java Java集合
    Struts2中的几个符号
    DbHelper.cs
    做word,excel时需要引用com
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/13732572.html
Copyright © 2011-2022 走看看