File tree Expand file tree Collapse file tree 4 files changed +78
-0
lines changed
Expand file tree Collapse file tree 4 files changed +78
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ func containsDuplicate( _ nums: [ Int ] ) -> Bool {
3+ var occurences = [ Int: Bool] ( )
4+
5+ for num in nums {
6+ if let occurs = occurences [ num] {
7+ return occurs
8+ } else {
9+ occurences [ num] = true
10+ }
11+ }
12+
13+ return false
14+ }
15+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ func rob( _ nums: [ Int ] ) -> Int {
3+ if nums. count < 3 {
4+ return nums. max ( ) !
5+ }
6+
7+ var expected = [ Int] ( )
8+ expected. append ( nums [ 0 ] )
9+ expected. append ( max ( nums [ 0 ] , nums [ 1 ] ) )
10+
11+ for i in 2 ..< nums. count {
12+ let prev = expected [ i - 1 ]
13+ let prevPrev = expected [ i - 2 ]
14+
15+ expected. append ( max ( prev, prevPrev + nums[ i] ) )
16+ }
17+
18+ return expected. removeLast ( )
19+ }
20+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ func topKFrequent( _ nums: [ Int ] , _ k: Int ) -> [ Int ] {
3+ var occurences = [ Int: Int] ( )
4+
5+ for num in nums {
6+ if let occurence = occurences [ num] {
7+ occurences [ num] = occurence + 1
8+ } else {
9+ occurences [ num] = 1
10+ }
11+ }
12+
13+ let numbers = occurences. keys. sorted { occurences [ $0] ?? 0 > occurences [ $1] ?? 0 }
14+
15+ return Array ( numbers [ 0 ..< k] )
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ func twoSum( _ nums: [ Int ] , _ target: Int ) -> [ Int ] {
3+ let nums = nums. enumerated ( ) . sorted { $0. 1 < $1. 1 }
4+
5+ for (index, num) in nums {
6+ let newTarget = target - num
7+
8+ var left = 0
9+ var right = nums. count - 1
10+
11+ while left <= right {
12+ let mid = ( left + right) / 2
13+
14+ if nums [ mid] . 1 == newTarget && nums [ mid] . 0 != index {
15+ return [ index, nums [ mid] . 0 ]
16+ } else if nums [ mid] . 1 < newTarget {
17+ left = mid + 1
18+ } else {
19+ right = mid - 1
20+ }
21+ }
22+ }
23+
24+ return [ 0 , 1 ]
25+ }
26+ }
You can’t perform that action at this time.
0 commit comments