给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例
给定数组 nums = [-1, 0, 1, 2, -1, -4], |
解法
核心思想:固定一个点,利用双指针遍历
关键点在去除不可能的情况:
- 最小的大于0
- 总数小于三个
- 之前判别过的(low从i+1开始)
- 去除res中的重复答案
利用set()去重
class Solution: |
前项和后项相等时跳过
class Solution: |