网易首页 > 网易号 > 正文 申请入驻

三数之和与四数之和:双指针如何砍掉两个数量级

0
分享至

刷题时最怕遇到什么?不是递归,不是动态规划,是那种看起来暴力就能解、但一提交就超时的大数组问题。三数之和与四数之和就是典型代表。暴力解法分别要到 O(n³) 和 O(n⁴),数据量稍大就扛不住。但换个思路,用排序加双指针,复杂度直接掉到 O(n²) 和 O(n³)。这篇把核心逻辑拆清楚,看完能直接上手写代码。

先说三数之和。题目要求找出数组中所有和为零的不重复三元组。输入 [-1, 0, 1, 2, -1, -4],输出应该是 [-1, -1, 2] 和 [-1, 0, 1] 这两组。暴力做法是三层循环枚举所有组合,O(n³) 的复杂度,n 超过 1000 就明显吃力。


优化从排序开始。数组排好序后,固定一个数,剩下就变成"找两个数凑出某个目标和"的经典问题。比如固定了 -1,就需要找两个数加起来等于 1。这时候双指针登场:一个放在固定位置的右边,一个放在数组末尾。和小了,左指针右移让总和变大;和大了,右指针左移让总和变小。找到匹配的就记录,然后两边都跳过重复值继续。


为什么排序后双指针有效?因为有序数组里,左移指针一定减小当前和,右移指针一定增大当前和。这个单调性保证了不会漏解,也避免了无意义的遍历。整个过程中,外层循环固定 n 个数,内层双指针最多走 n 步,总复杂度 O(n²)。去重也简单:固定元素时跳过重复的,找到解后两个指针各自跳过重复值即可。

四数之和的逻辑几乎一样,只是多固定一层。先排序,然后外层两个嵌套循环固定前两个数,剩下两个数用双指针找。比如数组 [1, 0, -1, 0, -2, 2] 目标和为 0,固定 -2 和 -1 后,就变成找两个数凑 3。双指针同样适用:左指针从第三个位置开始,右指针在末尾,根据和的大小调整位置。

复杂度对比很直观。四数之和暴力是 O(n⁴),四层循环每个数都试。优化后两层循环加双指针,O(n³)。对于面试常见的 10⁴ 级别数据量,这意味着从几小时运算降到几秒可完成。


双指针的价值不止这两道题。它本质是利用有序结构的单调性,把"枚举所有可能"变成"有方向地收缩搜索空间"。两数之和、盛最多水的容器、滑动窗口最大值,底层都是这个思想。掌握之后,看到"有序数组""找满足条件的对/组"这类关键词,本能就会往双指针方向想。

最后提一个容易踩的坑:去重逻辑必须和指针移动配合好。三数之和里,找到一组解后,左右指针都要跳过所有相同值再移动,否则 [-1, 0, 0, 0, 1] 这种数据会输出多个 [ -1, 0, 1]。固定元素的循环也一样,当前数和前一个相同就直接 continue,避免重复固定。

这两道题的代码实现细节很多,但核心就三点:排序创造单调性、固定 k-2 个数把 k 数之和降为双指针问题、严格去重保证结果唯一。把这个框架吃透,五数之和、六数之和也能举一反三。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
铁了心倒向美国?该国与美国联手做局收割中国,幸好中方早有防范

铁了心倒向美国?该国与美国联手做局收割中国,幸好中方早有防范

领悟看世界
2026-06-04 00:40:30
人民日报:茅盾文学奖最值得看的10本书,读懂受益终生

人民日报:茅盾文学奖最值得看的10本书,读懂受益终生

洞见
2026-06-02 22:18:28
9年投入5800万!董路没教练证却带足球小将夺冠 孙继海:马戏团

9年投入5800万!董路没教练证却带足球小将夺冠 孙继海:马戏团

念洲
2026-06-03 06:51:28
原新四军师级干部无职务,主席特批待遇比照元帅

原新四军师级干部无职务,主席特批待遇比照元帅

唠叨说历史
2026-06-02 14:39:17
2006年上海惊天社保案,唯独一名女子携巨款潜逃20年

2006年上海惊天社保案,唯独一名女子携巨款潜逃20年

呼呼历史论
2026-06-04 11:09:56
知名演员无戏可拍,和母亲街边卖鱼意外走红,今选择拍视频当网红

知名演员无戏可拍,和母亲街边卖鱼意外走红,今选择拍视频当网红

白面书誏
2026-05-27 20:46:32
国乒最新:王楚钦孙颖莎弃赛,王曼昱冲击世界第一

国乒最新:王楚钦孙颖莎弃赛,王曼昱冲击世界第一

孤傲何妨初
2026-06-03 15:19:04
大部分人都在亏钱的牛市

大部分人都在亏钱的牛市

谭谈财经
2026-06-04 19:37:00
一位清华教授曾直言:过去三十年搞房地产,赚的都是断子绝孙的钱

一位清华教授曾直言:过去三十年搞房地产,赚的都是断子绝孙的钱

无意争春
2026-06-02 20:45:10
多次侵入某战区医院数据库,窃取药品数据后对外销售,获利45.8万元!杨某被判3年6个月

多次侵入某战区医院数据库,窃取药品数据后对外销售,获利45.8万元!杨某被判3年6个月

都市快报橙柿互动
2026-06-03 22:25:44
CBA曝:卢伟打假球,上海队恐追罚,广东后卫欲租借

CBA曝:卢伟打假球,上海队恐追罚,广东后卫欲租借

小皷拍客在北漂
2026-06-03 22:46:43
为什么领导都喜欢上班?网友曝光领导抽屉都是性用品:丝袜、套套

为什么领导都喜欢上班?网友曝光领导抽屉都是性用品:丝袜、套套

黯泉
2026-06-01 15:33:05
又一起吃他汀猝死!医生再三劝告:夏季吃他汀的人,要警惕这5点

又一起吃他汀猝死!医生再三劝告:夏季吃他汀的人,要警惕这5点

荆医生科普
2026-06-04 20:00:08
广州豪宅,低头了

广州豪宅,低头了

见地
2026-06-04 16:01:52
表姑向我借了85000,17年没还,我去银行注销旧卡时,柜员看了眼卡说:女士,最后一笔转账留言您要看吗?

表姑向我借了85000,17年没还,我去银行注销旧卡时,柜员看了眼卡说:女士,最后一笔转账留言您要看吗?

可读
2026-05-20 21:21:00
足协裁判评议:法比奥禁区倒地未判点球正确,VAR介入错误

足协裁判评议:法比奥禁区倒地未判点球正确,VAR介入错误

懂球帝
2026-06-04 14:54:13
关德晴代表日本U19首发,成为第2名代表日本参加土伦杯的华裔

关德晴代表日本U19首发,成为第2名代表日本参加土伦杯的华裔

懂球帝
2026-06-04 10:55:43
“真以为专科没学霸?”女生晒翻身证书被群嘲:含金量不如白开水

“真以为专科没学霸?”女生晒翻身证书被群嘲:含金量不如白开水

妍妍教育日记
2026-06-03 08:45:06
靠着学费吸血的民办高校,正在迎来史上最残酷的倒闭潮

靠着学费吸血的民办高校,正在迎来史上最残酷的倒闭潮

职场资深秘书
2026-06-04 12:38:38
唐朝大将薛仁贵坑杀13万铁勒人,强娶铁勒公主为妾,却活到了70岁

唐朝大将薛仁贵坑杀13万铁勒人,强娶铁勒公主为妾,却活到了70岁

铭记历史呀
2026-06-04 14:29:58
2026-06-04 20:32:49
闪存猎手
闪存猎手
全网蹲好价的野生捕手,算力与羊毛都不可辜负。
4484文章数 38关注度
往期回顾 全部

头条要闻

演讲中飚脏话辱骂学生 粉笔网CEO发文二次致歉

头条要闻

演讲中飚脏话辱骂学生 粉笔网CEO发文二次致歉

体育要闻

欧冠决赛躺赢?他也曾是大巴黎的英雄

娱乐要闻

难怪奚梦瑶能嫁入豪门

财经要闻

SpaceX发行价135美元 6月12日上市交易

科技要闻

历史最大IPO!马斯克下周冲击万亿富豪

汽车要闻

北京现代5月销量强势反弹:国内17065辆 出口环比翻倍

态度原创

艺术
房产
亲子
数码
教育

艺术要闻

唐寅『梅花册』

房产要闻

震撼!海口顶豪“素颜出境”,直接顶穿品质天花板!

亲子要闻

深耕儿童呼吸过敏诊疗,儿内科呼吸中心打造专科标杆

数码要闻

华硕破晓Ultra开箱图赏:一体成型陶瓷铝机身,简约“降噪”设计

教育要闻

2026届高考生可以放心了!今年高考不会很难!相反会简单!

无障碍浏览 进入关怀版