Skip to content

Commit a11f78a

Browse files
authored
feat: add solutions to lc problem: No.2924 (#3817)
1 parent 0313b39 commit a11f78a

File tree

5 files changed

+140
-0
lines changed

5 files changed

+140
-0
lines changed

solution/2900-2999/2924.Find Champion II/README.md

+55
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,61 @@ function findChampion(n: number, edges: number[][]): number {
182182
}
183183
```
184184

185+
#### JavaScript
186+
187+
```js
188+
function findChampion(n, edges) {
189+
const indeg = Array(n).fill(0);
190+
for (const [_, v] of edges) {
191+
++indeg[v];
192+
}
193+
let [ans, cnt] = [-1, 0];
194+
for (let i = 0; i < n; ++i) {
195+
if (indeg[i] === 0) {
196+
++cnt;
197+
ans = i;
198+
}
199+
}
200+
return cnt === 1 ? ans : -1;
201+
}
202+
```
203+
204+
<!-- tabs:end -->
205+
206+
<!-- solution:end -->
207+
208+
<!-- solution:start -->
209+
210+
### 方法二
211+
212+
<!-- tabs:start -->
213+
214+
#### TypeScript
215+
216+
```ts
217+
function findChampion(n: number, edges: number[][]): number {
218+
const vertexes = new Set<number>(Array.from({ length: n }, (_, i) => i));
219+
220+
for (const [_, v] of edges) {
221+
vertexes.delete(v);
222+
}
223+
224+
return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value! : -1;
225+
}
226+
```
227+
228+
#### JavaScript
229+
230+
```js
231+
function findChampion(n, edges) {
232+
const vertexes = new Set(Array.from({ length: n }, (_, i) => i));
233+
for (const [_, v] of edges) {
234+
vertexes.delete(v);
235+
}
236+
return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value : -1;
237+
}
238+
```
239+
185240
<!-- tabs:end -->
186241

187242
<!-- solution:end -->

solution/2900-2999/2924.Find Champion II/README_EN.md

+55
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,61 @@ function findChampion(n: number, edges: number[][]): number {
180180
}
181181
```
182182

183+
#### JavaScript
184+
185+
```js
186+
function findChampion(n, edges) {
187+
const indeg = Array(n).fill(0);
188+
for (const [_, v] of edges) {
189+
++indeg[v];
190+
}
191+
let [ans, cnt] = [-1, 0];
192+
for (let i = 0; i < n; ++i) {
193+
if (indeg[i] === 0) {
194+
++cnt;
195+
ans = i;
196+
}
197+
}
198+
return cnt === 1 ? ans : -1;
199+
}
200+
```
201+
202+
<!-- tabs:end -->
203+
204+
<!-- solution:end -->
205+
206+
<!-- solution:start -->
207+
208+
### Solution 2
209+
210+
<!-- tabs:start -->
211+
212+
#### TypeScript
213+
214+
```ts
215+
function findChampion(n: number, edges: number[][]): number {
216+
const vertexes = new Set<number>(Array.from({ length: n }, (_, i) => i));
217+
218+
for (const [_, v] of edges) {
219+
vertexes.delete(v);
220+
}
221+
222+
return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value! : -1;
223+
}
224+
```
225+
226+
#### JavaScript
227+
228+
```js
229+
function findChampion(n, edges) {
230+
const vertexes = new Set(Array.from({ length: n }, (_, i) => i));
231+
for (const [_, v] of edges) {
232+
vertexes.delete(v);
233+
}
234+
return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value : -1;
235+
}
236+
```
237+
183238
<!-- tabs:end -->
184239

185240
<!-- solution:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function findChampion(n, edges) {
2+
const indeg = Array(n).fill(0);
3+
for (const [_, v] of edges) {
4+
++indeg[v];
5+
}
6+
let [ans, cnt] = [-1, 0];
7+
for (let i = 0; i < n; ++i) {
8+
if (indeg[i] === 0) {
9+
++cnt;
10+
ans = i;
11+
}
12+
}
13+
return cnt === 1 ? ans : -1;
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
function findChampion(n, edges) {
2+
const vertexes = new Set(Array.from({ length: n }, (_, i) => i));
3+
for (const [_, v] of edges) {
4+
vertexes.delete(v);
5+
}
6+
return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value : -1;
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function findChampion(n: number, edges: number[][]): number {
2+
const vertexes = new Set<number>(Array.from({ length: n }, (_, i) => i));
3+
4+
for (const [_, v] of edges) {
5+
vertexes.delete(v);
6+
}
7+
8+
return vertexes.size === 1 ? vertexes[Symbol.iterator]().next().value! : -1;
9+
}

0 commit comments

Comments
 (0)