找到小镇的法官 - C++力扣997题

题目链接:https://leetcode.com/problems/find-the-town-judge/description/

解题思路

这个题目其实十分简单,我们可以直接模拟一遍就行。首先题目保证了提供的信任关系没有重复,也就是说只需要检查到某个人有 n - 1 条信任记录,就已经符合了其中的一个条件。其次就是我们只需要把有信任关系的 $a_i$ 方记录,找到没有任何信任记录且满足条件的那个人,就是题目的答案。

完整代码:

class Solution {
public:
    int findJudge(int n, vector<vector<int>>& trust) {
        vector<int> trusted(n + 1);
        vector<int> judge(n + 1);
        for(int i = 0; i < trust.size(); i++) {
            judge[trust[i][0]] = 1;
            trusted[trust[i][1]]++;
        }
        for(int i = 1; i <= n; i++) {
            if(trusted[i] == (n - 1) && judge[i] == 0) return i;
        }
        return -1;
    }
};