最大子段和O(n)算法;不是动态规划;思路挺独特;

来源:互联网 发布:软件安全性测试 试题 编辑:程序博客网 时间:2024/05/16 00:44

 

先用O(n)时间计算S[i],表示i之前的总和.

 

S[j]-S[i]就是一段和, 对于一个固定的j,S[i]越小越好, 所以用O(n)时间计算对于每个j,它之前的最小S[],记为minS[i].这个统计过程也是线性一遍完成的.

 

最后,O(n)时间, 计算S[i]-minS[i], 取最大值返回.

 

原创粉丝点击