forked from algorithm001/algorithm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeetCode_997_142.java
More file actions
26 lines (25 loc) · 875 Bytes
/
Copy pathLeetCode_997_142.java
File metadata and controls
26 lines (25 loc) · 875 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public int findJudge(int N, int[][] trust) {
int[] trustArr = new int[N + 1]; // how many people this person trusts
int[] trustedArr = new int[N + 1]; // how many people trust this person
for (int[] pair : trust) {
trustArr[pair[0]]++;
trustedArr[pair[1]]++;
}
int judge = -1;
for (int i = 1; i <= N; i++) {
if (trustArr[i] == 0) { // not trust anyone, may be the judge
if (judge == -1) {
judge = i; // update judge
} else {
return -1; // got the second judge, return -1
}
}
}
// the judge must be trusted by N-1 people.
if (judge != -1 && trustedArr[judge] == N - 1) {
return judge;
}
return -1;
}
}