LeetCode---Maximum Subarray

来源:互联网 发布:vs2017写c语言 编辑:程序博客网 时间:2024/04/30 19:44

题目大意:

给出一个数组,求出该数组中的最大字段和。数组中的元素可能为正也可能为负。

算法思想:

a[j]表示数组中的元素,b[j]表示从0到j的子段和,他可能为b[j-1]+a[j],也可能为a[j]。则b[j]=max{b[j-1]+a[j],a[j]},遍历数组找出最大的b[j]即可。

代码如下:

class Solution {public:    int maxSubArray(vector<int>& nums) {        if(nums.size()==0) return 0;        int b=0,sum=-100000;        vector<int>::iterator pos;        for(pos=nums.begin();pos!=nums.end();++pos){            if(b<0) b=*pos;            else b+=*pos;                        if(b>sum)                     sum=b;        }        return sum;            }};


0 0
原创粉丝点击