From ae30264ae8aee053e1bf30fae3ac4465903ac0db Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 00:04:23 +0900 Subject: [PATCH 1/7] contains-duplicate solution --- contains-duplicate/parkhoejong.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 contains-duplicate/parkhoejong.cpp diff --git a/contains-duplicate/parkhoejong.cpp b/contains-duplicate/parkhoejong.cpp new file mode 100644 index 0000000000..7e035cb0a0 --- /dev/null +++ b/contains-duplicate/parkhoejong.cpp @@ -0,0 +1,17 @@ +// Time Complexity: O(n) on average +// Space Complexity: O(n) + +#include + +class Solution { +public: + bool containsDuplicate(vector& nums) { + unordered_set seen; + for(int n: nums) { + if(seen.count(n)) return true; + seen.insert(n); + } + + return false; + } +}; From 01e8e9c1f93d7a94824fc988542cb46afb160fe4 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 00:04:23 +0900 Subject: [PATCH 2/7] two-sum solution --- two-sum/parkhoejong.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 two-sum/parkhoejong.cpp diff --git a/two-sum/parkhoejong.cpp b/two-sum/parkhoejong.cpp new file mode 100644 index 0000000000..ffdf19e896 --- /dev/null +++ b/two-sum/parkhoejong.cpp @@ -0,0 +1,21 @@ +// Time Complexity: O(n) on average +// Space Complexity: O(n) + +#include + +class Solution { +public: + vector twoSum(vector& nums, int target) { + unordered_map index_of; + + for (int i = 0; i < nums.size(); i++) { + int complement = target - nums[i]; + + if (index_of.count(complement)) { + return {index_of[complement], i}; + } + index_of[nums[i]] = i; + } + return {}; + } +}; From 32cad3927afd5cd0ee4c55c153038a08c626fea7 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 00:04:23 +0900 Subject: [PATCH 3/7] top-k-frequent-elements solution --- top-k-frequent-elements/parkhoejong.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 top-k-frequent-elements/parkhoejong.cpp diff --git a/top-k-frequent-elements/parkhoejong.cpp b/top-k-frequent-elements/parkhoejong.cpp new file mode 100644 index 0000000000..bf343b53fc --- /dev/null +++ b/top-k-frequent-elements/parkhoejong.cpp @@ -0,0 +1,25 @@ +// n: number of elements, m: number of distinct values +// Time Complexity: O(n + m log m) on average +// Space Complexity: O(m) + +#include + +class Solution { +public: + vector topKFrequent(vector& nums, int k) { + unordered_map freq; + + for(int n: nums) freq[n]++; + + vector> v(freq.begin(), freq.end()); + sort(v.begin(), v.end(), [](const auto& a, const auto& b) { + return a.second > b.second; + }); + + vector res; + for(int i = 0; i < k; i++) + res.push_back(v[i].first); + + return res; + } +}; From 637ccad72e9bf75a0bcc9ee9aec724d329f489a9 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 00:04:23 +0900 Subject: [PATCH 4/7] longest-consecutive-sequence solution --- longest-consecutive-sequence/parkhoejong.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 longest-consecutive-sequence/parkhoejong.cpp diff --git a/longest-consecutive-sequence/parkhoejong.cpp b/longest-consecutive-sequence/parkhoejong.cpp new file mode 100644 index 0000000000..1a8e753fce --- /dev/null +++ b/longest-consecutive-sequence/parkhoejong.cpp @@ -0,0 +1,20 @@ +// Time Complexity: O(n) on average +// Space Complexity: O(n) + +class Solution { +public: + int longestConsecutive(vector& nums) { + int N = nums.size(); + unordered_set s(nums.begin(), nums.end()); + int best = 0; + for(int x: s) { + if(s.count(x - 1)) continue; + + int len = 1; + while(s.count(x + len)) len++; + best = max(best, len); + } + + return best; + } +}; From 4a59e3844ffaff8fc0488a6004c5651e849a6120 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 00:04:23 +0900 Subject: [PATCH 5/7] house-robber solution --- house-robber/parkhoejong.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 house-robber/parkhoejong.cpp diff --git a/house-robber/parkhoejong.cpp b/house-robber/parkhoejong.cpp new file mode 100644 index 0000000000..849e32b5fd --- /dev/null +++ b/house-robber/parkhoejong.cpp @@ -0,0 +1,23 @@ +// Time Complexity: O(n) +// Space Complexity: O(n), including memoization and recursion stack + +class Solution { +public: + + int rob(vector& nums) { + int N = nums.size(); + vector cache(N, -1); + + function recur = [&](int cur) -> int { + if (cur >= N) return 0; + if (cache[cur] != -1) return cache[cur]; + + int a = recur(cur + 1); + int b = recur(cur + 2) + nums[cur]; + + return cache[cur] = max(a, b); + }; + + return recur(0); + } +}; From 7f7fd7174f74fdc5ea3a05a3ec2a83b064c5fe37 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 00:15:30 +0900 Subject: [PATCH 6/7] top-k-frequent-elements solution --- top-k-frequent-elements/parkhoejong.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/top-k-frequent-elements/parkhoejong.cpp b/top-k-frequent-elements/parkhoejong.cpp index bf343b53fc..3a8a706498 100644 --- a/top-k-frequent-elements/parkhoejong.cpp +++ b/top-k-frequent-elements/parkhoejong.cpp @@ -1,6 +1,5 @@ -// n: number of elements, m: number of distinct values -// Time Complexity: O(n + m log m) on average -// Space Complexity: O(m) +// Time Complexity: O(n) on average +// Space Complexity: O(n) #include @@ -8,17 +7,15 @@ class Solution { public: vector topKFrequent(vector& nums, int k) { unordered_map freq; - for(int n: nums) freq[n]++; - vector> v(freq.begin(), freq.end()); - sort(v.begin(), v.end(), [](const auto& a, const auto& b) { - return a.second > b.second; - }); + vector> bucket(nums.size() + 1); + for (auto& [num, f]: freq) bucket[f].push_back(num); + vector res; - for(int i = 0; i < k; i++) - res.push_back(v[i].first); + for (int f = nums.size(); f >= 1 && res.size() < k; f--) + for (int n: bucket[f]) res.push_back(n); return res; } From 055a093fcf65939c48c9bb98c2639d818b2a48b8 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sun, 15 Nov 2026 02:29:28 +0900 Subject: [PATCH 7/7] Fix GitHub username in solution filenames --- contains-duplicate/{parkhoejong.cpp => parkhojeong.cpp} | 0 house-robber/{parkhoejong.cpp => parkhojeong.cpp} | 0 longest-consecutive-sequence/{parkhoejong.cpp => parkhojeong.cpp} | 0 top-k-frequent-elements/{parkhoejong.cpp => parkhojeong.cpp} | 0 two-sum/{parkhoejong.cpp => parkhojeong.cpp} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename contains-duplicate/{parkhoejong.cpp => parkhojeong.cpp} (100%) rename house-robber/{parkhoejong.cpp => parkhojeong.cpp} (100%) rename longest-consecutive-sequence/{parkhoejong.cpp => parkhojeong.cpp} (100%) rename top-k-frequent-elements/{parkhoejong.cpp => parkhojeong.cpp} (100%) rename two-sum/{parkhoejong.cpp => parkhojeong.cpp} (100%) diff --git a/contains-duplicate/parkhoejong.cpp b/contains-duplicate/parkhojeong.cpp similarity index 100% rename from contains-duplicate/parkhoejong.cpp rename to contains-duplicate/parkhojeong.cpp diff --git a/house-robber/parkhoejong.cpp b/house-robber/parkhojeong.cpp similarity index 100% rename from house-robber/parkhoejong.cpp rename to house-robber/parkhojeong.cpp diff --git a/longest-consecutive-sequence/parkhoejong.cpp b/longest-consecutive-sequence/parkhojeong.cpp similarity index 100% rename from longest-consecutive-sequence/parkhoejong.cpp rename to longest-consecutive-sequence/parkhojeong.cpp diff --git a/top-k-frequent-elements/parkhoejong.cpp b/top-k-frequent-elements/parkhojeong.cpp similarity index 100% rename from top-k-frequent-elements/parkhoejong.cpp rename to top-k-frequent-elements/parkhojeong.cpp diff --git a/two-sum/parkhoejong.cpp b/two-sum/parkhojeong.cpp similarity index 100% rename from two-sum/parkhoejong.cpp rename to two-sum/parkhojeong.cpp