LeetCode-连续子数组的最大和

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.

click to show more practice.

More practice:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.


int maxSubArray(int A[], int n) {
        
        int curSum = 0;
        int maxSum = A[0];
        
        for(int j = 0; j < n; j++) {
            if(curSum >= 0)  {
                curSum += A[j];
            }
            else {
                curSum = A[j];
            }
            if(curSum > maxSum) {
                maxSum = curSum;
            }
        }
        return maxSum;
    }


你可能感兴趣的:(编程)