Skip to content

Commit a005de9

Browse files
committed
Add three sum solution
1 parent 0999d34 commit a005de9

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

3sum/hyunjung-choi.kt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class Solution {
2+
fun threeSum(nums: IntArray): List<List<Int>> {
3+
if (nums.size < 3) return emptyList()
4+
5+
val result = mutableSetOf<List<Int>>()
6+
7+
nums.sort()
8+
9+
for (i in 0 until nums.size - 2) {
10+
11+
if (i > 0 && nums[i] == nums[i - 1]) continue
12+
13+
var left = i + 1
14+
var right = nums.size - 1
15+
16+
while (left < right) {
17+
val sum = nums[i] + nums[left] + nums[right]
18+
19+
when {
20+
sum == 0 -> {
21+
result.add(listOf(nums[i], nums[left], nums[right]))
22+
23+
left++
24+
right--
25+
}
26+
27+
sum < 0 -> left++
28+
else -> right--
29+
}
30+
}
31+
}
32+
33+
return result.toList()
34+
}
35+
}

0 commit comments

Comments
 (0)