暴力求解
从第一个开始循环i,长度为1到n-i+1,O(n^2)
分治
O(NlogN)
最大子序列可能在三个地方出现,或者在左半部,或者在右半部,或者跨越输入数据的中部而占据左右两部分。前两种情况递归求解,第三种情况的最大和可以通过求出前半部分最大和(包含前半部分最后一个元素)以及后半部分最大和(包含后半部分的第一个元素)相加而得到。
增量算法
假设已知A[1~ N]的最大顺序子序列和,那么对于A[1~N+ ]序列,增加一个项,最大顺序子序列和会在哪里产生呢?(1)不变,A[N+1]项不影响(2)在包括A[N+1]项往前的子序列中产生。O(n^2)
动态规划
dp[i] = max{A[i], dp[i-1]+A[i]} O(N)