實際上此題,就是判斷這個圖裏面有沒有一個點的出度爲0,入度爲n-1。
class Solution {
public:
int findJudge(int N, vector<vector<int>>& trust) {
vector<int> vis(N+1,0);
for(auto& edge:trust){
vis[edge[0]] =1;
}
int cnt = 0,idx;
for(int i=1;i<=N;i++){
if(!vis[i]){
cnt++;
idx = i;
}
}
if(cnt!=1){
return -1;
}
int cur = 0;
for(auto& edge:trust){
if(edge[1]==idx){
cur++;
}
}
if(cur==N-1){
return idx;
}
return -1;
}
};