File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ //
2+ // 15. 3Sum
3+ // https://leetcode.com/problems/3sum/description/
4+ // Dale-Study
5+ //
6+ // Created by WhiteHyun on 2024/06/04.
7+ //
8+
9+ class Solution {
10+ func threeSum( _ nums: [ Int ] ) -> [ [ Int ] ] {
11+ var result : [ [ Int ] ] = [ ]
12+ let sorted = nums. sorted ( )
13+
14+ for (index, element) in sorted. enumerated ( ) where index <= 0 || element != sorted [ index - 1 ] {
15+ var left = index + 1
16+ var right = sorted. count - 1
17+
18+ while left < right {
19+ let threeSum = element + sorted[ left] + sorted[ right]
20+ if threeSum > 0 {
21+ right -= 1
22+ continue
23+ }
24+ if threeSum < 0 {
25+ left += 1
26+ continue
27+ }
28+
29+ result. append ( [ element, sorted [ left] , sorted [ right] ] )
30+ left += 1
31+
32+ while sorted [ left] == sorted [ left - 1 ] && left < right {
33+ left += 1
34+ }
35+ }
36+ }
37+
38+
39+ return result
40+ }
41+ }
You can’t perform that action at this time.
0 commit comments