双指针

    双指针,顾名思义,就是利用两个指针去遍历数组,一般来说,遍历数组采用的是单指针(index)去遍历,两个指针一般是在有序数组中使用,一个放首,一个放尾,同时向中间遍历,直到两个指针相交,完成遍历,时间复杂度也是O(n)。

    一般会有两个指针,tail。分别指向开始和结束位置。

    1. {

    对于in place交换的问题,循环结束条件一般就是其中一个指针遍历完成。

    一般双指针在有序数组中使用的特别多。(部分情况下,未排序数组也有应用)
    一般用来解决下列问题(陆续补充中):

    时间复杂度为O(n),如果用双重循环则要O(n^2)。

    2. in place交换

    数组的in place(就地)交换一般得用双指针,不然数组中添加或删除一个元素,需要移动大量元素。