Skip to content

Commit 6227b40

Browse files
committed
feat: add js solution
1 parent 33756e5 commit 6227b40

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

solution/2200-2299/2225.Find Players With Zero or One Losses/README_EN.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,34 @@ func findWinners(matches [][]int) [][]int {
155155
}
156156
```
157157

158+
### **JavaScript**
159+
160+
```js
161+
var findWinners = function (matches) {
162+
const onlyWins = new Set(),
163+
oneLose = new Set(),
164+
moreLosses = new Set();
165+
166+
for (const [winner, loser] of matches) {
167+
if (!moreLosses.has(loser)) {
168+
if (oneLose.has(loser)) {
169+
oneLose.delete(loser);
170+
moreLosses.add(loser);
171+
} else {
172+
onlyWins.delete(loser);
173+
oneLose.add(loser);
174+
}
175+
}
176+
177+
if (!moreLosses.has(winner) && !oneLose.has(winner)) {
178+
onlyWins.add(winner);
179+
}
180+
}
181+
182+
return [[...onlyWins].sort((a, b) => a - b), [...oneLose].sort((a, b) => a - b)];
183+
};
184+
```
185+
158186
### **TypeScript**
159187

160188
```ts
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var findWinners = function (matches) {
2+
const onlyWins = new Set(),
3+
oneLose = new Set(),
4+
moreLosses = new Set();
5+
6+
for (const [winner, loser] of matches) {
7+
if (!moreLosses.has(loser)) {
8+
if (oneLose.has(loser)) {
9+
oneLose.delete(loser);
10+
moreLosses.add(loser);
11+
} else {
12+
onlyWins.delete(loser);
13+
oneLose.add(loser);
14+
}
15+
}
16+
17+
if (!moreLosses.has(winner) && !oneLose.has(winner)) {
18+
onlyWins.add(winner);
19+
}
20+
}
21+
22+
return [[...onlyWins].sort((a, b) => a - b), [...oneLose].sort((a, b) => a - b)];
23+
};

0 commit comments

Comments
 (0)