File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change
1
+ import Foundation
2
+
3
+ class Solution {
4
+ func threeSum( _ nums: [ Int ] ) -> [ [ Int ] ] {
5
+ var result = [ [ Int] ] ( )
6
+ let sortedNums = nums. sorted ( )
7
+
8
+ for i in 0 ..< sortedNums. count - 2 {
9
+ if i > 0 && sortedNums [ i] == sortedNums [ i - 1 ] {
10
+ continue
11
+ }
12
+
13
+ var leftNumber = i + 1
14
+ var rightNumber = sortedNums. count - 1
15
+
16
+ while leftNumber < rightNumber {
17
+ let sum = sortedNums [ i] + sortedNums[ leftNumber] + sortedNums[ rightNumber]
18
+
19
+ if sum < 0 {
20
+ leftNumber += 1
21
+ } else if sum > 0 {
22
+ rightNumber -= 1
23
+ } else {
24
+ result. append ( [ sortedNums [ i] , sortedNums [ leftNumber] , sortedNums [ rightNumber] ] )
25
+
26
+ while leftNumber < rightNumber && sortedNums [ leftNumber] == sortedNums [ leftNumber + 1 ] {
27
+ leftNumber += 1
28
+ }
29
+
30
+ while leftNumber < rightNumber && sortedNums [ rightNumber] == sortedNums [ rightNumber - 1 ] {
31
+ rightNumber -= 1
32
+ }
33
+
34
+ leftNumber += 1
35
+ rightNumber -= 1
36
+ }
37
+ }
38
+ }
39
+
40
+ return result
41
+ }
42
+ }
43
+
You can’t perform that action at this time.
0 commit comments