Maximum Subarray (Medium)

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.

Analysis

每次加上当前数,当sum<0时,重新计算

My Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//C++
class Solution {
public:
int maxSubArray(int A[], int n) {
int maxx = A[0],sum=0;
for(int i=0;i<n;i++){
sum+=A[i];
maxx = max(maxx,sum);
if(sum<0)
sum = 0;
}
return maxx;
}
};