SubArray
sum[i][j] = prefix[j] - prefix[i];
subarray思路:
1)应用于大部分int subarray题目;
2)只遍历一遍;
3)每一次i前进中,记录当前的sum和进去prefix数组;
4)每一次i前进中,利用当前的sum和曾经的sum计算出某些玩意,
例如求子数组和为0,就是sum - prefix[0,i-1] == 0;
例如求子数组和最大,就是find max (sum-prefix[0, i-1])
题目有:
maximum subarray 1,2,3
best time to buy sell stock 1,2,3,4
subarray sum
subarray sum closet
twopointers窗口题目思路:
1)基本是对于字符窜而言,只有一题关于int,minimum size subarray sum;
2)两个指针,j在正常情况下前进,不回退;i在异常情况下前进,不回退;i前进时,当前的状态会被修改;
3)记录以下三个值:j,ret_value,sum
4)ret_value update的时机不定,或者在正常情况,或者在异常情况,或者在j循环break后;