题目:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
分析:
动态规划。求maxsum(n),maxsum(n)是前n个元素中包含第n个元素的子数组最大和。递归公式:
if maxsum(n-1)>0,则maxsum(n)=maxsum(n-1)+element(n);否则,maxsum(n)=element(n)。
题目:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
分析:
动态规划。求maxsum(n),maxsum(n)是前n个元素中包含第n个元素的子数组最大和。递归公式:
if maxsum(n-1)>0,则maxsum(n)=maxsum(n-1)+element(n);否则,maxsum(n)=element(n)。