From 2ed040b0b2d828935cab8bd2b43571b977fe478f Mon Sep 17 00:00:00 2001 From: dongzoolee Date: Thu, 5 Mar 2026 16:55:32 +0900 Subject: [PATCH 1/4] Add a solution for contains-duplicate --- contains-duplicate/dongzoolee.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 contains-duplicate/dongzoolee.ts diff --git a/contains-duplicate/dongzoolee.ts b/contains-duplicate/dongzoolee.ts new file mode 100644 index 000000000..bddc2eb20 --- /dev/null +++ b/contains-duplicate/dongzoolee.ts @@ -0,0 +1,4 @@ +function containsDuplicate(nums: number[]): boolean { + const sets = new Set(nums); + return sets.size < nums.length; +} From 0a3990a22aa1f60a4610b03b35eb8490c2d351bb Mon Sep 17 00:00:00 2001 From: dongzoolee Date: Thu, 5 Mar 2026 22:03:56 +0900 Subject: [PATCH 2/4] Add a solution for two-sum --- two-sum/dongzoolee.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 two-sum/dongzoolee.ts diff --git a/two-sum/dongzoolee.ts b/two-sum/dongzoolee.ts new file mode 100644 index 000000000..34f9dd088 --- /dev/null +++ b/two-sum/dongzoolee.ts @@ -0,0 +1,20 @@ +function twoSum(nums: number[], target: number): number[] { + const sz = nums.length; + let l = 0, + r = 1, + sm = nums[0] + nums[1]; + + while (l <= sz - 2 && r <= sz - 1) { + sm = nums[l] + nums[r]; + + if (sm === target) { + return [l, r]; + } + + if (l === r - 1) { + (r++, (l = 0)); + } else { + l++; + } + } +} From 0e276678cf7d8b74b1d680d77d229e8ef532bcd5 Mon Sep 17 00:00:00 2001 From: dongzoolee Date: Fri, 6 Mar 2026 10:46:07 +0900 Subject: [PATCH 3/4] Add a solution for top-k-frequent-elements --- top-k-frequent-elements/dongzoolee.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 top-k-frequent-elements/dongzoolee.ts diff --git a/top-k-frequent-elements/dongzoolee.ts b/top-k-frequent-elements/dongzoolee.ts new file mode 100644 index 000000000..69ffc0bf8 --- /dev/null +++ b/top-k-frequent-elements/dongzoolee.ts @@ -0,0 +1,15 @@ +function topKFrequent(nums: number[], k: number): number[] { + const mp: { [k: number]: number } = {}; + nums.forEach((n) => (typeof mp[n] === "number" ? mp[n]++ : (mp[n] = 1))); + + const unq_nums = [...new Set(nums)]; + unq_nums.sort((a, b) => { + if (mp[a] === mp[b]) { + return 0; + } + + return mp[a] < mp[b] ? 1 : -1; + }); + + return unq_nums.slice(0, k); +} From e8b0675c87923b518c35fbc4d445fc1215c6ac9a Mon Sep 17 00:00:00 2001 From: dongzoolee Date: Fri, 6 Mar 2026 15:33:27 +0900 Subject: [PATCH 4/4] Add a solution for longest-consecutive-sequence --- longest-consecutive-sequence/dongzoolee.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 longest-consecutive-sequence/dongzoolee.ts diff --git a/longest-consecutive-sequence/dongzoolee.ts b/longest-consecutive-sequence/dongzoolee.ts new file mode 100644 index 000000000..cba805cf2 --- /dev/null +++ b/longest-consecutive-sequence/dongzoolee.ts @@ -0,0 +1,17 @@ +function longestConsecutive(nums: number[]): number { + const st = new Set(nums); + + let mx = 0; + for (const n of st) { + if (st.has(n - 1)) continue; + + let len = 1; + while (st.has(n + len)) { + len++; + } + + mx = Math.max(mx, len); + } + + return mx; +}