Skip to content

Commit dba0c44

Browse files
author
Kohei Asai
authored
997. Find the Town Judge (#110)
1 parent 706b3a9 commit dba0c44

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

solutions/findTheTownJudge.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import findJudge from "./findTheTownJudge";
2+
3+
describe("997. Find the Town Judge", () => {
4+
const TEST_CASES = new Map<[number, [number, number][]], number>([
5+
[[2, [[1, 2]]], 2],
6+
[[3, [[1, 3], [2, 3]]], 3],
7+
[[3, [[1, 3], [2, 3], [3, 1]]], -1],
8+
[[3, [[1, 2], [2, 3]]], -1],
9+
[[4, [[1, 3], [1, 4], [2, 3], [2, 4], [4, 3]]], 3],
10+
[[1, []], 1]
11+
]);
12+
13+
for (const [[n, trust], expected] of TEST_CASES) {
14+
it(`returns ${expected} when called with ${n} and [${trust}]`, () => {
15+
expect(findJudge(n, trust)).toBe(expected);
16+
});
17+
}
18+
});

solutions/findTheTownJudge.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// 997. Find the Town Judge
2+
// https://leetcode.com/problems/find-the-town-judge/
3+
export default function findJudge(
4+
N: number,
5+
trust: [number, number][]
6+
): number {
7+
const powers = new Array(N).fill(0);
8+
9+
for (const [from, to] of trust) {
10+
powers[from - 1] = -Infinity;
11+
powers[to - 1] += 1;
12+
}
13+
14+
const judge = powers.findIndex(power => power === N - 1);
15+
16+
return judge === -1 ? -1 : judge + 1;
17+
}

0 commit comments

Comments
 (0)