题目搬运者
https://leetcode-cn.com/problems/3sum/
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
思路
双指针
- 先对数组排好序
- 若 nums[i] >0 ,则 i 之后的三元组之和不可能为0 ,结束
- 如果 nums[i] 与之前的元素重复,即跳过
- 双指针,左指针 设为 i+1 ,右指针设为 n-1
1. 如果nums[i] + nums[left] + nums[right] == 0 加入答案列表,. 如果nums[lef] 与nums[left+1]重复,则 left 递增
2. 同理,但right 是递减
3 . 如果nums[i] + nums[left] + nums[right] >0 , right-=1; 反之left +=1
class Solution(object):
def threeSum(self, nums):
"""