答案中不可以包含重复的三元组
例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为:
[[-1, 0, 1],[-1, -1, 2]]
问题
什么情况下三个数相加才会等于零...什么情况下三个数相加不可能为零
如果在一组数据中最小的两个数相加为正数,则这两个数和后面的数相加不可能等于零
如果在一组数据中最小的数为正数,则该数和其它数字相加不可能等于零
怎样判断会出现重复的值
如果在一组数据中有两个数相等...,则会出现重复的值
解决思路
在上面的问题中,我们可以提取出几个关键字,如最小、正数、负数、相等;那么我们如何在一组数据中直观的看到这些关键词所对应的数字呢?...其实可以轻易的想到,那就是从小到大排序,这样一来我们就很轻易的对负数和正数进行划分,相等的数据也会是相邻的状态,三个数相加等于零一定是负数【左边】的数据和正数【右边】的数据选择三个才能相加等于零。...代码思路
1、首先我们需要排序
2、循环我们的数据
3、如果最小的数大于0直接结束循环
4、如果相邻的数据相等则跳过循环,避免重复
5、如果三个数相加等于零则存储到相应的二维数组中
上面的简单思路有一点我们需要注意