An array with N integer elements (A [0], A [1], A [2],..., A [n-1]). Of course, this array has many sub-arrays. What is the maximum value of the sum of sub-arrays? For example, the maximum sub-array of-2 5 3-6 4-8 6 is 5 3. Method 1: search by traversal:
int maximum=-INF; int sum; for(int i=0;i<n;i++) { sum=0; for(int j=i;j<n;j++) { sum+=A[j]; if(sum>maximum) maximum=sum; } return maximum; } int maximum=-INF;int sum;for(int i=0;i<n;i++){ sum=0; for(int j=i;j<n;j++) { sum+=A[j];if(sum>maximum)maximum=sum; }return maximum;}
Method 2:
Using the DP Method,
int max(int x,int y) { return (x>y)?x:y; } int MaxSum(int*A,int n) { Start[n-1]=A[n-1]; All[n-1]=A[n-1]; for(i=n-2;i>=0;i--) { Start[n-1]=max(A[i],A[[i]+Start[i+1]); All[i]=max(Start[i],All[i+1]); } return All[0]; } int max(int x,int y){return (x>y)?x:y;}int MaxSum(int*A,int n){ Start[n-1]=A[n-1]; All[n-1]=A[n-1]; for(i=n-2;i>=0;i--) { Start[n-1]=max(A[i],A[[i]+Start[i+1]);All[i]=max(Start[i],All[i+1]); } return All[0];}