思考:做的时候感觉像要用图的知识,然后画了下几个结点,就发现条件信任对就是一个有向边,然后第一个条件法官不相信任何人,即出度为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;
}
};