From da4a5d5a0781e25ff927e3adf88ceb3055e11981 Mon Sep 17 00:00:00 2001 From: ccn-lee-dayoung Date: Sat, 15 Nov 2025 00:07:11 +0900 Subject: [PATCH 1/5] two sum solution --- two-sum/youngDaLee.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 two-sum/youngDaLee.go diff --git a/two-sum/youngDaLee.go b/two-sum/youngDaLee.go new file mode 100644 index 0000000000..54d083cfbb --- /dev/null +++ b/two-sum/youngDaLee.go @@ -0,0 +1,14 @@ +package youngDaLee + +func twoSum(nums []int, target int) []int { + numMap := make(map[int]int) + for i, num := range nums { + sub := target - num + if j, exists := numMap[sub]; exists { + return []int{j, i} + } + numMap[num] = i + } + + return []int{} +} From d5c6168c6547e2fdfb304013a8f844966822b937 Mon Sep 17 00:00:00 2001 From: youngDaLee Date: Sat, 15 Nov 2025 00:12:56 +0900 Subject: [PATCH 2/5] contains duplicated solution --- contains-duplicate/youngDaLee.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 contains-duplicate/youngDaLee.go diff --git a/contains-duplicate/youngDaLee.go b/contains-duplicate/youngDaLee.go new file mode 100644 index 0000000000..95ec483813 --- /dev/null +++ b/contains-duplicate/youngDaLee.go @@ -0,0 +1,12 @@ +package youngDaLee + +func containsDuplicate(nums []int) bool { + numMap := make(map[int]bool) + for _, num := range nums { + if _, exists := numMap[num]; exists { + return true + } + numMap[num] = true + } + return false +} From fa9ea3657cf2d7ba5dfffe64d1bd26886a12ce6d Mon Sep 17 00:00:00 2001 From: youngDaLee Date: Sat, 15 Nov 2025 00:16:30 +0900 Subject: [PATCH 3/5] top-k frequent elements solution --- top-k-frequent-elements/youngDaLee.go | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 top-k-frequent-elements/youngDaLee.go diff --git a/top-k-frequent-elements/youngDaLee.go b/top-k-frequent-elements/youngDaLee.go new file mode 100644 index 0000000000..c3a8208747 --- /dev/null +++ b/top-k-frequent-elements/youngDaLee.go @@ -0,0 +1,31 @@ +package youngDaLee + +import "sort" + +func topKFrequent(nums []int, k int) []int { + frequencyMap := make(map[int]int) + for _, num := range nums { + frequencyMap[num]++ + } + + type freqPair struct { + num int + count int + } + + freqPairs := make([]freqPair, 0, len(frequencyMap)) + for num, count := range frequencyMap { + freqPairs = append(freqPairs, freqPair{num, count}) + } + + sort.Slice(freqPairs, func(i, j int) bool { + return freqPairs[i].count > freqPairs[j].count + }) + + result := make([]int, k) + for i := 0; i < k; i++ { + result[i] = freqPairs[i].num + } + + return result +} From bb8d394adb2727bc64c98e47811eca8c47cb20ed Mon Sep 17 00:00:00 2001 From: youngDaLee Date: Sat, 15 Nov 2025 00:27:20 +0900 Subject: [PATCH 4/5] longest consecutive sequence solution --- longest-consecutive-sequence/youngDaLee.go | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 longest-consecutive-sequence/youngDaLee.go diff --git a/longest-consecutive-sequence/youngDaLee.go b/longest-consecutive-sequence/youngDaLee.go new file mode 100644 index 0000000000..6f1b18dbdf --- /dev/null +++ b/longest-consecutive-sequence/youngDaLee.go @@ -0,0 +1,28 @@ +package youngDaLee + +func longestConsecutive(nums []int) int { + numSet := make(map[int]bool) + for _, num := range nums { + numSet[num] = true + } + + longestStreak := 0 + + for num := range numSet { + if !numSet[num-1] { + currentNum := num + currentStreak := 1 + + for numSet[currentNum+1] { + currentNum++ + currentStreak++ + } + + if currentStreak > longestStreak { + longestStreak = currentStreak + } + } + } + + return longestStreak +} From e0383fb62c2a840638a0bcfb6b5f3f87aa0033ac Mon Sep 17 00:00:00 2001 From: youngDaLee Date: Sat, 15 Nov 2025 00:30:35 +0900 Subject: [PATCH 5/5] rob solution --- house-robber/youngDaLee.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 house-robber/youngDaLee.go diff --git a/house-robber/youngDaLee.go b/house-robber/youngDaLee.go new file mode 100644 index 0000000000..013914c716 --- /dev/null +++ b/house-robber/youngDaLee.go @@ -0,0 +1,27 @@ +package youngDaLee + +func rob(nums []int) int { + if len(nums) == 0 { + return 0 + } + if len(nums) == 1 { + return nums[0] + } + + dp := make([]int, len(nums)) + dp[0] = nums[0] + dp[1] = max(nums[0], nums[1]) + + for i := 2; i < len(nums); i++ { + dp[i] = max(dp[i-1], dp[i-2]+nums[i]) + } + + return dp[len(nums)-1] +} + +func max(a, b int) int { + if a > b { + return a + } + return b +}