public int minJump(int arr[],int result[]){
        
        int []jump = new int[arr.length];
        jump[0] = 0;
        for(int i=1; i < arr.length ; i++){
            jump[i] = Integer.MAX_VALUE-1;
        }
        
        for(int i=1; i < arr.length; i++){
            for(int j=0; j < i; j++){
                if(arr[j] + j >= i){
                    if(jump[i] > jump[j] + 1){
                        result[i] = j;
                        jump[i] = jump[j] + 1;
                    }
                }
            }
        }
        
        return jump[jump.length-1];
    }
Date 06/12/2014 
@author tusroy

Given an array of non negative integers where each element represents the max 
number of steps that can be made forward from that element. Write a function to 
return the minimum number of jumps to reach the end of the array from first element

Solution 
Have 2 for loop. j trails i. If arr[j] + j >= i then you calculate new jump
and result.

Space complexity O(n) to maintain result and min jumps
Time complexity O(n^2)

Reference
http://www.geeksforgeeks.org/minimum-number-of-jumps-to-reach-end-of-a-given-array/
src/com/interview/dynamic/MinJumpToReachEnd.java