2.一个明显的结论是,如果a[i]是负的,那么他不可能代表最有序列的起点,因为任何包含以a[i]的子序列都可以通过a[i+1]为起点的子序列来得到改进.
3.类似的,任何负子序列不可能是嘴有子序列的前缀.(原理相同)
4.那么,如果我们在循环中检查到从a[i]到a[j]的子序列是负的,那么我们可以推进i.这里关键的结论是我们不仅仅可以将i推进到i+1,而且可以推进到j+1.
5.猥琐结论4:令p为i+1到j的任意一个下标,开始于下标p的人以子序列都不大雨在下标i开始并包含从a[i]到a[p-1]的子序列的对应子序列,因为后面的这个子序列不是负的(j是使得从下标i开始成为负值的第一个下标),因此把i推进到j+1是正确的,不会错过最优解.
对于2维的子矩阵和最大问题,我们只要枚举连续的行,让它映射到一个子串中,然后用O(n)算法解
对于2维的可垂直,水平相接的问题我们可以用单调队列进行优化,摊还后时间复杂度是O(n^3);