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