力扣第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就重复了。
力扣第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就重复了。