15.三数之和为0的所有组合
【15.三数之和为0的所有组合】思路:排序后遍历数组,每次遍历后在该数右边设置两个指针向中间移动,如果遍历的数大于0可以直接退出。因为返回要求不重复,在指针移动的过程中碰到和移动前相同的直接跳过
class Solution(object):
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
nums = sorted(nums)
print(nums)
res = []
for i in range(len(nums)):
if nums[i]>0:
break
if i >=1 and nums[i]==nums[i-1]:
continue
l = i+1
r = len(nums)-1
while l0:
r-=1
elif nums[i]+nums[l]+nums[r]<0:
l+=1
else:
res.append([nums[i],nums[l],nums[r]])
l+=1
r-=1
while l
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- 人生是什么(2015.9.8)
- 15.Kafka
- [leetcode数组系列]1两数之和
- 孩子的艰难考研路2015.04
- 尊重与希望5.6.7.8.9.10.11.12.13.14.15.16.17.
- 剑指offer15.二进制中1的个数
- 115.|115. 不同的子序列
- openSUSE 15.2已结束生命周期,还不升级吗()
- 求一个分数2/1|求一个分数2/1, 3/2, 5/3, 8/5...前n项序列之和