From 0665221acda2d730afae701e212575af94cae2a5 Mon Sep 17 00:00:00 2001 From: devdays9 Date: Sat, 7 Mar 2026 00:31:07 +0900 Subject: [PATCH 1/3] feat: Add solutions for week 01 problems --- contains-duplicate/devdays9.kt | 6 ++++++ house-robber/devdays9.kt | 15 +++++++++++++++ longest-consecutive-sequence/devdays9.kt | 19 +++++++++++++++++++ top-k-frequent-elements/devdays9.kt | 18 ++++++++++++++++++ two-sum/devdays9.kt | 15 +++++++++++++++ 5 files changed, 73 insertions(+) create mode 100644 contains-duplicate/devdays9.kt create mode 100644 house-robber/devdays9.kt create mode 100644 longest-consecutive-sequence/devdays9.kt create mode 100644 top-k-frequent-elements/devdays9.kt create mode 100644 two-sum/devdays9.kt diff --git a/contains-duplicate/devdays9.kt b/contains-duplicate/devdays9.kt new file mode 100644 index 000000000..8facf3333 --- /dev/null +++ b/contains-duplicate/devdays9.kt @@ -0,0 +1,6 @@ +class Solution { + fun containsDuplicate(nums: IntArray): Boolean { + val occurrences = HashSet(nums.size) + return nums.any { !occurrences.add(it) } + } +} diff --git a/house-robber/devdays9.kt b/house-robber/devdays9.kt new file mode 100644 index 000000000..5b720a7eb --- /dev/null +++ b/house-robber/devdays9.kt @@ -0,0 +1,15 @@ +import kotlin.math.max + +class Solution { + fun rob(nums: IntArray): Int { + var prevMaxMoney = 0 + var maxMoney = 0 + for (money in nums) { + prevMaxMoney.let { + prevMaxMoney = maxMoney + maxMoney = max(it + money, maxMoney) + } + } + return maxMoney + } +} diff --git a/longest-consecutive-sequence/devdays9.kt b/longest-consecutive-sequence/devdays9.kt new file mode 100644 index 000000000..e0a1b4f29 --- /dev/null +++ b/longest-consecutive-sequence/devdays9.kt @@ -0,0 +1,19 @@ +import kotlin.math.max + +class Solution { + fun longestConsecutive(nums: IntArray): Int { + val numsSet = nums.toHashSet() + var maxLength = 0 + for (num in numsSet) { + if (num - 1 in numsSet) { + continue + } + var length = 1 + while (num + length in numsSet) { + ++length + } + maxLength = max(length, maxLength) + } + return maxLength + } +} diff --git a/top-k-frequent-elements/devdays9.kt b/top-k-frequent-elements/devdays9.kt new file mode 100644 index 000000000..3241cbec9 --- /dev/null +++ b/top-k-frequent-elements/devdays9.kt @@ -0,0 +1,18 @@ +import java.util.PriorityQueue + +typealias Number = Int +typealias Frequency = Int + +class Solution { + fun topKFrequent(nums: IntArray, k: Int): IntArray { + val frequencyMap = HashMap(k) + nums.forEach { + frequencyMap.merge(it, 1, Int::plus) + } + val heap = PriorityQueue(frequencyMap.size) { num1, num2 -> + frequencyMap[num2]!!.compareTo(frequencyMap[num1]!!) + } + heap.addAll(frequencyMap.keys) + return IntArray(k) { heap.poll() } + } +} diff --git a/two-sum/devdays9.kt b/two-sum/devdays9.kt new file mode 100644 index 000000000..3cb3eab7e --- /dev/null +++ b/two-sum/devdays9.kt @@ -0,0 +1,15 @@ +typealias Number = Int +typealias Index = Int + +class Solution { + fun twoSum(nums: IntArray, target: Int): IntArray { + val occurrences = HashMap(nums.size) + nums.forEachIndexed { index, num -> + occurrences[target - num]?.let { complementIndex -> + return intArrayOf(index, complementIndex) + } + occurrences[num] = index + } + return intArrayOf() + } +} From e90ec952896ea5cb7d52aa91f34c236ab84cd1a6 Mon Sep 17 00:00:00 2001 From: devdays9 Date: Sat, 7 Mar 2026 00:47:29 +0900 Subject: [PATCH 2/3] fix: Correct initial capacity for the frequency map --- top-k-frequent-elements/devdays9.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/top-k-frequent-elements/devdays9.kt b/top-k-frequent-elements/devdays9.kt index 3241cbec9..d75c0cd53 100644 --- a/top-k-frequent-elements/devdays9.kt +++ b/top-k-frequent-elements/devdays9.kt @@ -5,7 +5,7 @@ typealias Frequency = Int class Solution { fun topKFrequent(nums: IntArray, k: Int): IntArray { - val frequencyMap = HashMap(k) + val frequencyMap = HashMap(nums.size) nums.forEach { frequencyMap.merge(it, 1, Int::plus) } From 75545c3a38a3bee7f85e7736acb055dd49d62650 Mon Sep 17 00:00:00 2001 From: devdays9 Date: Sat, 7 Mar 2026 00:49:04 +0900 Subject: [PATCH 3/3] refactor: Simplify the heap addition using `+=` operator --- top-k-frequent-elements/devdays9.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/top-k-frequent-elements/devdays9.kt b/top-k-frequent-elements/devdays9.kt index d75c0cd53..032f5d98a 100644 --- a/top-k-frequent-elements/devdays9.kt +++ b/top-k-frequent-elements/devdays9.kt @@ -12,7 +12,7 @@ class Solution { val heap = PriorityQueue(frequencyMap.size) { num1, num2 -> frequencyMap[num2]!!.compareTo(frequencyMap[num1]!!) } - heap.addAll(frequencyMap.keys) + heap += frequencyMap.keys return IntArray(k) { heap.poll() } } }