import java.util.*;
/*
* Maximum Value Contiguous Subsequence. Given a sequence of n real numbers A(1) ... A(n),
* determine a contiguous subsequence A(i) ... A(j) for which the sum of elements in the subsequence is maximized.
*/
class Ideone{
public static void main
(String[] args
){ int[] a = { -2, 11, -4, 13, -5, 2 };
int[] contigSum = new int[a.length];
for(int i=0; i<a.length; i++){
contigSum[i] = getMaxContiguousSum(a, i);
}
int maxSum = -234343;
for(int i=0; i<contigSum.length; i++){
maxSum = max(contigSum[i], maxSum);
}
System.
out.
println("Maximum contiguous sum => "+ maxSum
); }
private static int getMaxContiguousSum(int[] a, int index){
if(index<0) return 0;
return max(getMaxContiguousSum(a, index-1) + a[index], a[index]);
}
private static int max(int a, int b){
return a>b ? a : b;
}
}