求一串数的最大子段和是一个经典问题,解决这个问题存在O(N^3),O(N^2),O(NlogN),O(N)算法。
把O(N)的算法记录如下:
- int maxSubSum(const vector<int>&a)
- {
- int maxsum=0;
- int thissum=0;
- for(unsigned int j=0;j<a.size();j++)
- {
- thissum+=a[j];
- if (thissum>maxsum)
- {
- maxsum=thissum;
- }else if (thissum<0)
- {
- thissum=0;
- }
- }
- return maxsum;
- }
转载于:https://blog.51cto.com/wenix/413711