这两个题思路,直接DP把。。。。
1.最大子串和:
F(n) = max(F(n-1)+a[n],a[n])
这里还可以加一个打印begin和end位置。思路是在F(n-1)+a[n]<a[n]记录一个开始start_idx,然后再maxsum<F(n)的时候把 start_idx = start_idx,end_idx = i;
2.最大子串积:
f_max[i] = max(max(f_max[i - 1] * nums[i], f_min[i - 1] * nums[i]), nums[i]);
f_min[i] = min(min(f_max[i - 1] * nums[i], f_min[i - 1] * nums[i]), nums[i]);