Leetcode53. 최대 부분배열 합

어떻게 지내세요

아이디어: 현재 요소 앞의 합이 0보다 작으면 현재 요소 앞의 시퀀스를 버립니다.

class Solution
{
    
    
public:
    int maxSubArray(vector<int> &nums)
    {
    
    
        //类似寻找最大最小值的题目,初始值一定要定义成理论上的最小最大值
        int result = INT_MIN;
        int numsSize = int(nums.size());
        int sum = 0;
        for (int i = 0; i < numsSize; i++)
        {
    
    
            sum += nums[i];
            result = max(result, sum);
            //如果sum < 0,重新开始找子序串
            if (sum < 0)
            {
    
    
                sum = 0;
            }
        }

        return result;
    }
};

추천

출처blog.csdn.net/weixin_43579015/article/details/123385196