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:
class Solution { public:int maxSubArray(int A[], int n) {int maxSub=0;for(int i=0,sum=0;i<n;i++){sum+=A[i];if(sum<0)sum=0;if(sum>maxSub)maxSub=sum;}if(maxSub==0){maxSub=A[0];for(int i=1;i<n;i++)if(A[i]>maxSub)maxSub=A[i];}return maxSub;} };