]+nums[j]+nums[k]==0。请返回所有和为0且不重复的三元组。
注意:答案中不可以包含重复的三元组。”
这道题说人话就是一串数字里,哪三个加起来等于0,这属于中等难度题型里最容易的那一批。
比如说[-1,0,1,2,-1,-4],那就存在[[-1,-1,2],[-1,0,1]]这两组数字,三个加起来都等于0。
像这样要求简单易懂的题目,其实代码实现起来远远没有大家想象的那么容易。
或许根据这个例子,不少人可以很快做出符合要求的程序,可未必就能够兼顾到各种边边角角的特例。
“最简单的办法是三重循环然后哈希表去重,这个复杂度是三次方级别,就不用写了。”
“呃...”这话一出,好几个犹犹豫豫开始码代码的学生脸色一僵,又开始苦苦地思索。
有少数几个人却是噼里啪啦一阵狂码,孟繁岐去看了一眼,思路没什么问题,排序加双指针。
这题虽然不难,但是好的解法思路倒也不多,这一招算是标配。
孟繁岐再细看了一下,有两位同学的细节做得属实相当不错。
对枚举是否重合的判断,指针位置关系的确认,指针是否重合,还有循环退出的条件设置,都还挺仔细的。
这在力扣和面经没有流行起来的当下,挺难得的。
“算法的复杂度呢?”孟繁岐轻声询问道。
“时间是二次方,空间是logN。”夏彦是一个挺消瘦白净的年轻小伙子,小镇走出来的他家庭经济条件一般。
孟繁岐开出的价位是他从来未曾想过的,因此他对待这次测试格外认真,这是减轻家中压力的大好机会。
“是不是参加过ICPC?这种题目对你来说太基础了吧。”ACM-ICPC是一个规模很大的大学生程序设计竞赛,在这之中取得成绩含金量相当之大。
直到2023年,区域金牌基本上都是面试前三关的通行证。
夏彦羞涩中带着点骄傲地笑了笑:“和两个朋友一起拿过赛区金牌,他们两个今天也来了。”