以一道比较简单的算法题为例子:
给出一个数组,求出数组中最大连续子序列的和:
可以设F(i) 是以元素array[i]结尾的子序列的和的最大值。
可以推导 => F(i) = max(F(i-1)+array【i】,array【i】)
你会问,为什么不是 F(i) = max(F(i-1),F(i-1)+array【i】,array【i】)?
因为我们是以array【i】结尾来分类的,从array【0】结尾开始,一直到array【array。length】结束,将所有的组合全部分类,
要是添加了F(i-1),进去和F(i-1)+array【i】,array【i】进行比较,就不是以array【i】结尾的了,从而也不是连续的了·。
再以int result 记录当前出现过的最大的值,即可