三数之和

本文详细解析LeetCode第15题「三数之和」的解决方案,通过排序配合双指针技巧,将时间复杂度从n^2降低到n。在确定一个数后,利用b和c的关系,避免重复计算,提高效率。该方法适用于寻找数组中特定和的子集问题。
摘要由CSDN通过智能技术生成

力扣第15题——三数之和,题目唯一的解法:排序加双指针。这是一个固定套路,可以把n^2的时间复杂度变为n。因为当确定了a的取值后,有b+c=-a。b越大,c就越小,意思就是当b需要遍历x个长度的时候,c就不用再遍历x-1个长度了,可以让c直接从nums数组的最右端开始遍历,当b遍历到某一个数时,c对应指针的位置是可以保留的。

因为,b+c若<-a,b加上c右边的数必定>=-a,所以b右边的数加上c右边的数必定>-a。然后b是永远小于c的,不然bc和cb就重复了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值