萌新的第一篇正式内容,如有错误,请指正。
双指针简介
双指针感觉更像是一种思想,使用两个指针在从两边向中间或者从一边同时开始但速度不同,也就是同向指针,快慢指针。双指针可以用来解决数组中元素的互换,并且还可以解决时间复杂度的问题,如果在某道题中用自己的方法会出现时间限制并且可以用双指针的话,不妨考虑一下它。双指针还可以解决在一定范围内要求的内容,比如说在一组连续的数中寻找一个或多个一定范围内的数的和为一个固定的值,或者寻找小于等于一个固定的值的范围等,下面我举几个例子,感觉说的好像废话啊,直接上题。
例子
1.反转一个字符串
给定一个字符数组将它反转。
下面是一个反转hello的代码
输出后就会变成olleh,还是很有趣的。
2.连续自然数和 - 洛谷
https://www.luogu.com.cn/problem/P1147
这是一个求一定范围内的自然数之和为M的题,从这个题中我们可以找到大致双指针的用法,下面是题解:
很粗糙,请多多包涵。
结尾
大致就这样了,关键是要多做题,我这只能算是一个引子(可能连引子都不算,写的太拉垮了),不过下面还有一些题,你们可以写写,应该可以让你们提高。