Skip to content

Commit

Permalink
feat: solve No.997
Browse files Browse the repository at this point in the history
  • Loading branch information
BaffinLee committed Feb 22, 2024
1 parent fbe768a commit 6607052
Showing 1 changed file with 95 additions and 0 deletions.
95 changes: 95 additions & 0 deletions 901-1000/997. Find the Town Judge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# 997. Find the Town Judge

- Difficulty: Easy.
- Related Topics: Array, Hash Table, Graph.
- Similar Questions: Find the Celebrity.

## Problem

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`. If a trust relationship does not exist in `trust` array, then such a trust relationship does not exist.

Return **the label of the town judge if the town judge exists and can be identified, or return **`-1`** otherwise**.


Example 1:

```
Input: n = 2, trust = [[1,2]]
Output: 2
```

Example 2:

```
Input: n = 3, trust = [[1,3],[2,3]]
Output: 3
```

Example 3:

```
Input: n = 3, trust = [[1,3],[2,3],[3,1]]
Output: -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`



## Solution

```javascript
/**
* @param {number} n
* @param {number[][]} trust
* @return {number}
*/
var findJudge = function(n, trust) {
var map = Array(n + 1).fill(0).map(() => [0, 0]);
for (var i = 0; i < trust.length; i++) {
map[trust[i][0]][0] += 1;
map[trust[i][1]][1] += 1;
}
for (var j = 1; j <= n; j++) {
if (map[j][0] === 0 && map[j][1] === n - 1) return j;
}
return -1;
};
```

**Explain:**

nope.

**Complexity:**

* Time complexity : O(n).
* Space complexity : O(n).

0 comments on commit 6607052

Please sign in to comment.