File tree Expand file tree Collapse file tree 5 files changed +112
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +112
-0
lines changed Original file line number Diff line number Diff line change 1+ package youngDaLee
2+
3+ func containsDuplicate (nums []int ) bool {
4+ numMap := make (map [int ]bool )
5+ for _ , num := range nums {
6+ if _ , exists := numMap [num ]; exists {
7+ return true
8+ }
9+ numMap [num ] = true
10+ }
11+ return false
12+ }
Original file line number Diff line number Diff line change 1+ package youngDaLee
2+
3+ func rob (nums []int ) int {
4+ if len (nums ) == 0 {
5+ return 0
6+ }
7+ if len (nums ) == 1 {
8+ return nums [0 ]
9+ }
10+
11+ dp := make ([]int , len (nums ))
12+ dp [0 ] = nums [0 ]
13+ dp [1 ] = max (nums [0 ], nums [1 ])
14+
15+ for i := 2 ; i < len (nums ); i ++ {
16+ dp [i ] = max (dp [i - 1 ], dp [i - 2 ]+ nums [i ])
17+ }
18+
19+ return dp [len (nums )- 1 ]
20+ }
21+
22+ func max (a , b int ) int {
23+ if a > b {
24+ return a
25+ }
26+ return b
27+ }
Original file line number Diff line number Diff line change 1+ package youngDaLee
2+
3+ func longestConsecutive (nums []int ) int {
4+ numSet := make (map [int ]bool )
5+ for _ , num := range nums {
6+ numSet [num ] = true
7+ }
8+
9+ longestStreak := 0
10+
11+ for num := range numSet {
12+ if ! numSet [num - 1 ] {
13+ currentNum := num
14+ currentStreak := 1
15+
16+ for numSet [currentNum + 1 ] {
17+ currentNum ++
18+ currentStreak ++
19+ }
20+
21+ if currentStreak > longestStreak {
22+ longestStreak = currentStreak
23+ }
24+ }
25+ }
26+
27+ return longestStreak
28+ }
Original file line number Diff line number Diff line change 1+ package youngDaLee
2+
3+ import "sort"
4+
5+ func topKFrequent (nums []int , k int ) []int {
6+ frequencyMap := make (map [int ]int )
7+ for _ , num := range nums {
8+ frequencyMap [num ]++
9+ }
10+
11+ type freqPair struct {
12+ num int
13+ count int
14+ }
15+
16+ freqPairs := make ([]freqPair , 0 , len (frequencyMap ))
17+ for num , count := range frequencyMap {
18+ freqPairs = append (freqPairs , freqPair {num , count })
19+ }
20+
21+ sort .Slice (freqPairs , func (i , j int ) bool {
22+ return freqPairs [i ].count > freqPairs [j ].count
23+ })
24+
25+ result := make ([]int , k )
26+ for i := 0 ; i < k ; i ++ {
27+ result [i ] = freqPairs [i ].num
28+ }
29+
30+ return result
31+ }
Original file line number Diff line number Diff line change 1+ package youngDaLee
2+
3+ func twoSum (nums []int , target int ) []int {
4+ numMap := make (map [int ]int )
5+ for i , num := range nums {
6+ sub := target - num
7+ if j , exists := numMap [sub ]; exists {
8+ return []int {j , i }
9+ }
10+ numMap [num ] = i
11+ }
12+
13+ return []int {}
14+ }
You can’t perform that action at this time.
0 commit comments