• Source
    1. import java.util.*;
    2.  
    3. /*
    4.  * Maximum Value Contiguous Subsequence. Given a sequence of n real numbers A(1) ... A(n),
    5.  * determine a contiguous subsequence A(i) ... A(j) for which the sum of elements in the subsequence is maximized.
    6.  */
    7. class Ideone{
    8. public static void main(String[] args){
    9. int[] a = { -2, 11, -4, 13, -5, 2 };
    10.  
    11. int[] contigSum = new int[a.length];
    12. for(int i=0; i<a.length; i++){
    13. contigSum[i] = getMaxContiguousSum(a, i);
    14. }
    15.  
    16. int maxSum = -234343;
    17. for(int i=0; i<contigSum.length; i++){
    18. maxSum = max(contigSum[i], maxSum);
    19. }
    20. System.out.println("Maximum contiguous sum => "+ maxSum);
    21. }
    22.  
    23. private static int getMaxContiguousSum(int[] a, int index){
    24. if(index<0) return 0;
    25.  
    26. return max(getMaxContiguousSum(a, index-1) + a[index], a[index]);
    27. }
    28.  
    29. private static int max(int a, int b){
    30. return a>b ? a : b;
    31. }
    32. }
    33.