LeetCode997——找到小镇的法官

思考:做的时候感觉像要用图的知识,然后画了下几个结点,就发现条件信任对就是一个有向边,然后第一个条件法官不相信任何人,即出度为0;第二个条件,任何人都相信法官,所以法官的入度为n-1。初始化的时候,为了方便使得法官编号和数组号对应,所以多开辟了一个空间,数组号为0的不用存储。

class Solution {
public:
    int findJudge(int N, vector<vector<int>>& trust) {
       vector<int> out_degree(N+1,0);
        vector<int> in_degree(N+1,0);
        for(auto item : trust){
            out_degree[item[0]]++;
            in_degree[item[1]]++;
        }
        for(int i = 1; i < N+1;i++){
            if(out_degree[i]==0 && in_degree[i] == N -1 ){
                return i;
            }
        }
        return -1;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_34269988/article/details/87901832