diff --git a/solution/2900-2999/2924.Find Champion II/README.md b/solution/2900-2999/2924.Find Champion II/README.md index 06297b5a2df91..7968945e547f5 100644 --- a/solution/2900-2999/2924.Find Champion II/README.md +++ b/solution/2900-2999/2924.Find Champion II/README.md @@ -182,6 +182,61 @@ function findChampion(n: number, edges: number[][]): number { } ``` +#### JavaScript + +```js +function findChampion(n, edges) { + const indeg = Array(n).fill(0); + for (const [_, v] of edges) { + ++indeg[v]; + } + let [ans, cnt] = [-1, 0]; + for (let i = 0; i < n; ++i) { + if (indeg[i] === 0) { + ++cnt; + ans = i; + } + } + return cnt === 1 ? ans : -1; +} +``` + + + + + + + +### 方法二 + + + +#### TypeScript + +```ts +function findChampion(n: number, edges: number[][]): number { + const vertexes = new Set(Array.from({ length: n }, (_, i) => i)); + + for (const [_, v] of edges) { + vertexes.delete(v); + } + + return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value! : -1; +} +``` + +#### JavaScript + +```js +function findChampion(n, edges) { + const vertexes = new Set(Array.from({ length: n }, (_, i) => i)); + for (const [_, v] of edges) { + vertexes.delete(v); + } + return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value : -1; +} +``` + diff --git a/solution/2900-2999/2924.Find Champion II/README_EN.md b/solution/2900-2999/2924.Find Champion II/README_EN.md index 24c47c075f9de..46cc175366d7e 100644 --- a/solution/2900-2999/2924.Find Champion II/README_EN.md +++ b/solution/2900-2999/2924.Find Champion II/README_EN.md @@ -180,6 +180,61 @@ function findChampion(n: number, edges: number[][]): number { } ``` +#### JavaScript + +```js +function findChampion(n, edges) { + const indeg = Array(n).fill(0); + for (const [_, v] of edges) { + ++indeg[v]; + } + let [ans, cnt] = [-1, 0]; + for (let i = 0; i < n; ++i) { + if (indeg[i] === 0) { + ++cnt; + ans = i; + } + } + return cnt === 1 ? ans : -1; +} +``` + + + + + + + +### Solution 2 + + + +#### TypeScript + +```ts +function findChampion(n: number, edges: number[][]): number { + const vertexes = new Set(Array.from({ length: n }, (_, i) => i)); + + for (const [_, v] of edges) { + vertexes.delete(v); + } + + return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value! : -1; +} +``` + +#### JavaScript + +```js +function findChampion(n, edges) { + const vertexes = new Set(Array.from({ length: n }, (_, i) => i)); + for (const [_, v] of edges) { + vertexes.delete(v); + } + return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value : -1; +} +``` + diff --git a/solution/2900-2999/2924.Find Champion II/Solution.js b/solution/2900-2999/2924.Find Champion II/Solution.js new file mode 100644 index 0000000000000..4cfe3b010727b --- /dev/null +++ b/solution/2900-2999/2924.Find Champion II/Solution.js @@ -0,0 +1,14 @@ +function findChampion(n, edges) { + const indeg = Array(n).fill(0); + for (const [_, v] of edges) { + ++indeg[v]; + } + let [ans, cnt] = [-1, 0]; + for (let i = 0; i < n; ++i) { + if (indeg[i] === 0) { + ++cnt; + ans = i; + } + } + return cnt === 1 ? ans : -1; +} diff --git a/solution/2900-2999/2924.Find Champion II/Solution2.js b/solution/2900-2999/2924.Find Champion II/Solution2.js new file mode 100644 index 0000000000000..3a6d88aa90675 --- /dev/null +++ b/solution/2900-2999/2924.Find Champion II/Solution2.js @@ -0,0 +1,7 @@ +function findChampion(n, edges) { + const vertexes = new Set(Array.from({ length: n }, (_, i) => i)); + for (const [_, v] of edges) { + vertexes.delete(v); + } + return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value : -1; +} diff --git a/solution/2900-2999/2924.Find Champion II/Solution2.ts b/solution/2900-2999/2924.Find Champion II/Solution2.ts new file mode 100644 index 0000000000000..4c8575c10db7b --- /dev/null +++ b/solution/2900-2999/2924.Find Champion II/Solution2.ts @@ -0,0 +1,9 @@ +function findChampion(n: number, edges: number[][]): number { + const vertexes = new Set(Array.from({ length: n }, (_, i) => i)); + + for (const [_, v] of edges) { + vertexes.delete(v); + } + + return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value! : -1; +}