问题:给定一个未排序的数值数组,求其中取最大值的一个子序列的值。
思路:设max(n)为前n个元素中,必须取到第n个元素时的最大和
前n个数字的最大值可表示为对{max(n-1),第n个数字}求当前的最大值。
其中有如下规则:
如果max(n-1)>=0,则不管当前的值为多少,max(n)=max(n-1)+第n个数字的值;
如果max(n-1)<0,则不管当前的值为多少,max(n)=第n个数字的值。
最后的最大子串和为所有的max(i)中取值最大的一个。
时间复杂度为O(n)
问题:给定一个未排序的数值数组,求其中取最大值的一个子序列的值。
思路:设max(n)为前n个元素中,必须取到第n个元素时的最大和
前n个数字的最大值可表示为对{max(n-1),第n个数字}求当前的最大值。
其中有如下规则:
如果max(n-1)>=0,则不管当前的值为多少,max(n)=max(n-1)+第n个数字的值;
如果max(n-1)<0,则不管当前的值为多少,max(n)=第n个数字的值。
最后的最大子串和为所有的max(i)中取值最大的一个。
时间复杂度为O(n)