Skip to content

Commit 3cd4635

Browse files
committed
feat: Add solution for LeetCode problem 15
1 parent f7e8ee1 commit 3cd4635

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

3sum/WhiteHyun.swift

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
}

0 commit comments

Comments
 (0)