leetcode 997. 找到小镇的法官

  直接找入度为$n-1$,出度为$0$的点就行了,时间复杂度是$O(n)$。

int in[1007],out[1007]; 

class Solution {
public:
    int findJudge(int n, vector<vector<int>>& trust) {
        int t=trust.size();
        memset(in,0,sizeof(in));
        memset(out,0,sizeof(out));
        for (int i=0;i<t;i++)
            out[trust[i][0]]++,in[trust[i][1]]++;
        int ans=0;
        for (int i=1;i<=n;i++)
            if (in[i]==n-1&&out[i]==0){
                if (ans)
                    return -1;
                else
                    ans=i;
            }
        return ans?ans:-1;
    }
};

 

posted @ 2021-06-19 22:31  wegret  阅读(57)  评论(0)    收藏  举报