-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path15_3Sum.py
29 lines (28 loc) · 988 Bytes
/
15_3Sum.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution(object):
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
result = []
nums = sorted(nums)
for i in range(len(nums)-2):
if((i == 0) or (nums[i] - nums[i-1] != 0)):
j = i + 1
k = len(nums)-1
while(j < k):
if(nums[i] + (nums[j] + nums[k]) == 0):
result.append([nums[i],nums[j],nums[k]])
j += 1
while((j < len(nums)) and (nums[j] == nums[j-1])):
j += 1
k -= 1
while((k >= 0) and (nums[k] == nums[k+1])):
k -= 1
elif(nums[i] + (nums[j] + nums[k]) > 0):
k -= 1
else:
j += 1
else:
pass
return result