一、最大子序列和

给定一个数组,求出其最大的子序列之和
定义d[i]代表以下标为i元素的最大子序列和
则d[i] = d[i-1] > 0 ? d[i-1] + a[i] : a[i]
算法:

int maxSubArray(int* nums, int numsSize){
    if(numsSize == 0)
        return 0;
    int m = nums[0];
    int d = m;
    int di;
    for(int i = 1;i < numsSize;i++)
    {
        di = nums[i];
        di = d > 0 ? d + di : di;
        if(di > m)
            m = di;
        d = di;
    }
    return m;
}