Maximum Subarray

Description:

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [−2,1,−3,4,−1,2,1,−5,4],
the contiguous subarray [4,−1,2,1] has the largest sum = 6.

 

Code:

    int maxSubArray(vector<int>& nums) {

        int maxValue = nums[0] ;

        int temp = 0;

        for (int i = 0; i < nums.size(); ++i)

        {

            temp += nums[i];

            if (temp > maxValue)

                maxValue = temp;

            if (temp < 0)

            {

                temp = 0;

            }

        }

        return maxValue;

    }

 

总结:

做起来不是很顺,只有大概思路,主要是上述代码中两个if的处理不能很快理清。

你可能感兴趣的:(array)