• Source
    1. import java.util.*;
    2.  
    3. class Ideone{
    4.  
    5. public static void main(String[] args){
    6. int[] a = { 3, 2, 2, 3, 1, 2 };
    7.  
    8. int maxSum = maxSum(a, 0, a.length-1);
    9. System.out.println("Max sum => "+ maxSum);
    10. }
    11.  
    12.  
    13. private static int maxSum(int[] a, int start, int end){
    14. if(start < 0 || end > a.length-1 || start > end) return 0;
    15.  
    16. int sum1 = a[start] + min(maxSum(a, start+1, end-1), maxSum(a, start+2, end));
    17. int sum2 = a[end] + min(maxSum(a, start+1, end-1), maxSum(a, start, end-2));
    18.  
    19. return sum1 > sum2 ? sum1 : sum2;
    20. }
    21.  
    22. private static int min(int a, int b){
    23. return a<b ? a :b;
    24. }
    25. }
    26.