From 6227b408d5a8c6adddf73eb4d582678bfca7ebd2 Mon Sep 17 00:00:00 2001 From: Nick Boyko Date: Mon, 15 Jan 2024 15:41:10 +0700 Subject: [PATCH 1/2] feat: add js solution --- .../README_EN.md | 28 +++++++++++++++++++ .../Solution.js | 23 +++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 solution/2200-2299/2225.Find Players With Zero or One Losses/Solution.js diff --git a/solution/2200-2299/2225.Find Players With Zero or One Losses/README_EN.md b/solution/2200-2299/2225.Find Players With Zero or One Losses/README_EN.md index 6d3c6dbb89080..1d6d6d2d886f6 100644 --- a/solution/2200-2299/2225.Find Players With Zero or One Losses/README_EN.md +++ b/solution/2200-2299/2225.Find Players With Zero or One Losses/README_EN.md @@ -155,6 +155,34 @@ func findWinners(matches [][]int) [][]int { } ``` +### **JavaScript** + +```js +var findWinners = function (matches) { + const onlyWins = new Set(), + oneLose = new Set(), + moreLosses = new Set(); + + for (const [winner, loser] of matches) { + if (!moreLosses.has(loser)) { + if (oneLose.has(loser)) { + oneLose.delete(loser); + moreLosses.add(loser); + } else { + onlyWins.delete(loser); + oneLose.add(loser); + } + } + + if (!moreLosses.has(winner) && !oneLose.has(winner)) { + onlyWins.add(winner); + } + } + + return [[...onlyWins].sort((a, b) => a - b), [...oneLose].sort((a, b) => a - b)]; +}; +``` + ### **TypeScript** ```ts diff --git a/solution/2200-2299/2225.Find Players With Zero or One Losses/Solution.js b/solution/2200-2299/2225.Find Players With Zero or One Losses/Solution.js new file mode 100644 index 0000000000000..95b4e5be4f721 --- /dev/null +++ b/solution/2200-2299/2225.Find Players With Zero or One Losses/Solution.js @@ -0,0 +1,23 @@ +var findWinners = function (matches) { + const onlyWins = new Set(), + oneLose = new Set(), + moreLosses = new Set(); + + for (const [winner, loser] of matches) { + if (!moreLosses.has(loser)) { + if (oneLose.has(loser)) { + oneLose.delete(loser); + moreLosses.add(loser); + } else { + onlyWins.delete(loser); + oneLose.add(loser); + } + } + + if (!moreLosses.has(winner) && !oneLose.has(winner)) { + onlyWins.add(winner); + } + } + + return [[...onlyWins].sort((a, b) => a - b), [...oneLose].sort((a, b) => a - b)]; +}; From bdf476245ff14924754ad54587509c35c44a12be Mon Sep 17 00:00:00 2001 From: Nick Boyko Date: Mon, 15 Jan 2024 15:58:27 +0700 Subject: [PATCH 2/2] docs: update `README.md` --- .../README.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/solution/2200-2299/2225.Find Players With Zero or One Losses/README.md b/solution/2200-2299/2225.Find Players With Zero or One Losses/README.md index 7b7c7a6ffe6cf..6c05ddab6a731 100644 --- a/solution/2200-2299/2225.Find Players With Zero or One Losses/README.md +++ b/solution/2200-2299/2225.Find Players With Zero or One Losses/README.md @@ -167,6 +167,34 @@ func findWinners(matches [][]int) [][]int { } ``` +### **JavaScript** + +```js +var findWinners = function (matches) { + const onlyWins = new Set(), + oneLose = new Set(), + moreLosses = new Set(); + + for (const [winner, loser] of matches) { + if (!moreLosses.has(loser)) { + if (oneLose.has(loser)) { + oneLose.delete(loser); + moreLosses.add(loser); + } else { + onlyWins.delete(loser); + oneLose.add(loser); + } + } + + if (!moreLosses.has(winner) && !oneLose.has(winner)) { + onlyWins.add(winner); + } + } + + return [[...onlyWins].sort((a, b) => a - b), [...oneLose].sort((a, b) => a - b)]; +}; +``` + ### **TypeScript** ```ts