一、题型
1、从数组中找出两个数的和等于目标数、找出三个数的和等于目标数;
2、子数组问题,和大于目标数的子数组,乘积大于目标数的子数组,和等于目标数的子数组,或者是找出每个条件下的最长或者最短的子数组,或者是找出每个条件下子数组的个数;
3、找出一个中心数,使其左右两边的子数组的和相等;
4、矩阵问题。
二、解决方案
1、使用双指针或者三指针,相同的数字注意跳过
2、子数组问题,一般使用滑动窗口或者前缀和。
(1)如果是和等于目标数的子数组的问题,一般使用前缀和加哈希,map中一般要提前加入(0,1),防止子数组起始位置为 0 时无法匹配到。
(2)滑动窗口的跳出循环条件一般是右指针小于数组长度
3、前缀和,前缀和和数组所有数的和减去前缀和。
4、找规律。