0997. Find the Town Judge

0997. Find the Town Judge #

题目 #

  • 小镇中有n个人,按从1n的顺序编号。传言称,这些人中有一个暗地里是小镇法官。
  • 如果小镇法官真的存在,那么:
    • 小镇法官不会信任任何人。
    • 每个人(除了小镇法官)都信任这位小镇法官。
    • 只有一个人同时满足前两条。
  • 给定数组trust,其中 trust[i] = [ai, bi] 表示编号为 ai 的人信任编号为 bi 的人。
  • 如果小镇法官存在,请返回该法官的编号。否则返回-1

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public int findJudge(int n, int[][] trust) {
        int[] cntMyTrust = new int[n + 1], cntTrustMe = new int[n + 1];
        for (int[] pair: trust) {
            cntMyTrust[pair[0]]++;
            cntTrustMe[pair[1]]++;
        }
        for (int i = 1; i <= n; i++) {
            if (cntMyTrust[i] == 0 && cntTrustMe[i] == n - 1) return i;
        }
        return -1;
    }
}