42连续子数组的最大和

参考资料:
[1]牛客000001号的回答:
https://www.nowcoder.com/profile/4449089/codeBookDetail?submissionId=13532648

class Solution {
public:
    int FindGreatestSumOfSubArray(vector<int> array) {
    
        if (array.size() == 0)
            return 0;

        int nTmpSum = array[0], nSum = array[0];
        for (int i = 1; i < array.size(); i++)
        {
            nTmpSum = (nTmpSum < 0) ? array[i] : (nTmpSum + array[i]);
            nSum = (nSum > nTmpSum) ? nSum : nTmpSum;
        }

        return nSum;
    }
};

标准答案:

class Solution {
public:
    int FindGreatestSumOfSubArray(vector<int> array) {
    
        if(array.empty())
            return 0;
        int tempsum = array[0],sum = array[0];
        for(int i = 1;i<array.size();i++)
        {
            tempsum = (tempsum<0)?array[i]:tempsum+array[i];
            sum = (tempsum >sum)?tempsum:sum;
        }
        return sum;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容