适用题型:排好序
的数组中的两个数字之和
或者几个数之和可以由两数之和变种
大于
目标值时,只需要将尾部指针向左
移动来减小两数之和;小于
目标值时,只需要将头部指针向右
移动来增加两数之和。剑指offer专项:题6,题7
适用题型:正数
数组中子数组
的和或者乘积
初始化指针的时候,两个指针都指向数组的头部,如果两个指针的和或者乘积大于目标值时,那么就向右
移动左指针
【向子数组中删除数】;如果个指针的和或者乘积小于目标值,那么就向左
移动右指针
【向子数组中增加数】。
优点:
那么这样迭代的好吃就是一次迭代就够了,时间复杂度是O(n)。
剑指offer专项:题8,题9
双指针
仅适用于所有值是正整数
的数组情况,当题目没有说明是正整数的时候就不适合适用双指针的方式,那我们就可以考虑前缀和的方法去解题。
前缀和:就是计算出所有子数组的值,然后根据题目完成对数组的操作。适用的题型也是子数组的和或积【类比于双向指针中的同向指针做的滑动窗口提醒】
剑指offer专项:题10,题11,题12,题13,