数组中相加和为0的三元组

题目描述
给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。
注意:
三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)
解集中不能包含重复的三元组。
例如,给定的数组 S = {-10 0 10 20 -10 -40},解集为(-10, 0, 10) (-10, -10, 20)
来源

我:

这题做不出来,直接看别人的思路了~~ ~~
有意思的是,题目自己给我的ArrayList竟然没帮我导包,一提交就报错。。。
所以要加上完全限定名。
1、又是双指针的问题,我上次做的判断链表是否有环是同一种的类型。一个是双指针同向,另一个是双指针 异向。
2、用到了“降维”的思想,固定一个target后,变成求两个数的和,成为二维;然后在比较两个数的和与target的值的大小的时候,又固定了left或者right,成为一个一维问题。
3、解决大小排序问题:先把数组进行排序。
4、解决重复问题:对重复的target的值以及重复的左右指针进行跳过

猜你喜欢

转载自blog.csdn.net/qq_47234534/article/details/109268337