997. Find the Town Judge
Description
Difficulty: Easy
Related Topics: Array, Hash Table, Graph
In a town, there are n
people labeled from 1
to n
. There is a rumor that one of these people is secretly the town judge.
If the town judge exists, then:
- The town judge trusts nobody.
- Everybody (except for the town judge) trusts the town judge.
- There is exactly one person that satisfies properties 1 and 2.
You are given an array trust
where trust[i] = [ai, bi] representing that the person labeled ai trusts the person labeled bi.
Return the label of the town judge if the town judge exists and can be identified, or return -1
otherwise.
Example 1:
1 | Input: n = 2, trust = [[1,2]] |
Example 2:
1 | Input: n = 3, trust = [[1,3],[2,3]] |
Example 3:
1 | Input: n = 3, trust = [[1,3],[2,3],[3,1]] |
Constraints:
1 <= n <= 1000
- 0 <= trust.length <= 104
trust[i].length == 2
- All the pairs of
trust
are unique. - ai != bi
- 1 <= ai, bi <= n
Hints/Notes
- if the number of pairs is less than n - 1, then we cannot identify the judge
- use in/out vector to mark the trust relationship
Solution
Language: C++
1 | class Solution { |