Skip to content

Commit 4652c72

Browse files
committed
3sum solution
1 parent fbbbae1 commit 4652c72

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

3sum/mrlee7.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def threeSum(self, nums: List[int]) -> List[List[int]]:
6+
result: List[List[int]] = []
7+
nums.sort()
8+
9+
for i in range(len(nums) - 2):
10+
if i > 0 and nums[i] == nums[i - 1]:
11+
continue
12+
13+
left = i + 1
14+
right = len(nums) - 1
15+
16+
while left < right:
17+
total = nums[i] + nums[left] + nums[right]
18+
19+
if total == 0:
20+
result.append([nums[i], nums[left], nums[right]])
21+
left += 1
22+
right -= 1
23+
24+
while left < right and nums[left] == nums[left - 1]:
25+
left += 1
26+
while left < right and nums[right] == nums[right + 1]:
27+
right -= 1
28+
29+
elif total < 0:
30+
left += 1
31+
else:
32+
right -= 1
33+
34+
return result

0 commit comments

Comments
 (0)