From d68a470131d4702fc66b5bba7ee79b18a5ca7958 Mon Sep 17 00:00:00 2001 From: Ju Hwijung Date: Thu, 5 Mar 2026 12:48:08 +0900 Subject: [PATCH 1/3] =?UTF-8?q?1=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4=203=EA=B0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Contains Duplicate - Two Sum - Top K Frequent Elements --- contains-duplicate/hwi-middle.cpp | 7 +++++++ top-k-frequent-elements/hwi-middle.cpp | 24 ++++++++++++++++++++++++ two-sum/hwi-middle.cpp | 23 +++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 contains-duplicate/hwi-middle.cpp create mode 100644 top-k-frequent-elements/hwi-middle.cpp create mode 100644 two-sum/hwi-middle.cpp diff --git a/contains-duplicate/hwi-middle.cpp b/contains-duplicate/hwi-middle.cpp new file mode 100644 index 000000000..4f1778df3 --- /dev/null +++ b/contains-duplicate/hwi-middle.cpp @@ -0,0 +1,7 @@ +class Solution { +public: + bool containsDuplicate(vector& nums) { + sort(nums.begin(), nums.end()); + return nums.end() != unique(nums.begin(), nums.end()); + } +}; diff --git a/top-k-frequent-elements/hwi-middle.cpp b/top-k-frequent-elements/hwi-middle.cpp new file mode 100644 index 000000000..c49ada2a7 --- /dev/null +++ b/top-k-frequent-elements/hwi-middle.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + vector topKFrequent(vector& nums, int k) { + unordered_map m; + for(auto n : nums) + { + ++m[n]; + } + + vector> v(m.begin(), m.end()); + sort(v.begin(), v.end(), [](const auto& a, const auto& b) + { + return a.second > b.second; + }); + + vector ans; + ans.reserve(k); + for (int i = 0; i < k; ++i) + { + ans.push_back(v[i].first); + } + return ans; + } +}; diff --git a/two-sum/hwi-middle.cpp b/two-sum/hwi-middle.cpp new file mode 100644 index 000000000..ffa8cd8b5 --- /dev/null +++ b/two-sum/hwi-middle.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + vector twoSum(vector& nums, int target) { + vector v(2); + unordered_map m; + for (int i = 0; i < nums.size(); ++i) + { + int num = nums[i]; + if (m.contains(target - num)) + { + v[0] = m[target - num]; + v[1] = i; + return v; + } + + m[num] = i; + } + + v[0] = -1; + v[1] = -1; + return v; + } +}; From dfcbf61e953556c9fbcd2aa58a686153c07ba41e Mon Sep 17 00:00:00 2001 From: Ju Hwijung Date: Fri, 6 Mar 2026 21:40:51 +0900 Subject: [PATCH 2/3] =?UTF-8?q?1=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4=201=EA=B0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - House Robber --- house-robber/hwi-middle.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 house-robber/hwi-middle.cpp diff --git a/house-robber/hwi-middle.cpp b/house-robber/hwi-middle.cpp new file mode 100644 index 000000000..918933851 --- /dev/null +++ b/house-robber/hwi-middle.cpp @@ -0,0 +1,15 @@ +class Solution { +public: + int rob(vector& nums) { + int len = nums.size() + 1; + vector d(len); + d[0] = 0; + d[1] = nums[0]; + for(int i = 2; i < len; ++i) + { + d[i] = max(d[i - 1], d[i - 2] + nums[i - 1]); + } + + return d[len - 1]; + } +}; From bbf40805d01c8e50d7dd6de29f96a681094384ca Mon Sep 17 00:00:00 2001 From: Ju Hwijung Date: Fri, 6 Mar 2026 22:39:12 +0900 Subject: [PATCH 3/3] =?UTF-8?q?1=EC=A3=BC=EC=B0=A8=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=92=80=EC=9D=B4=201=EA=B0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Longest Consecutive Sequence --- longest-consecutive-sequence/hwi-middle.cpp | 39 +++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 longest-consecutive-sequence/hwi-middle.cpp diff --git a/longest-consecutive-sequence/hwi-middle.cpp b/longest-consecutive-sequence/hwi-middle.cpp new file mode 100644 index 000000000..f8e84e5f3 --- /dev/null +++ b/longest-consecutive-sequence/hwi-middle.cpp @@ -0,0 +1,39 @@ +class Solution { +public: + int longestConsecutive(vector& nums) { + if (nums.empty()) + { + return 0; + } + + unordered_set s; + s.reserve(nums.size()); + s.max_load_factor(0.4f); + s.insert(nums.begin(), nums.end()); + + int ans = 0; + for(auto& e : s) + { + if (s.contains(e - 1)) + { + continue; + } + + int con = 1; + int num = e; + while (true) + { + num++; + if(!s.contains(num)) + { + break; + } + + con++; + } + ans = max(ans, con); + } + + return ans; + } +};