Minimum number of jumps Java
- Get link
- X
- Other Apps
PROGRAM TO FIND MINIMUM NUMBER OF JUMPS TO REACH END
class
Test {
static
int
minJumps(
int
arr[])
{
if
(arr.length <=
1
)
return
0
;
// Return -1 if not possible to jump
if
(arr[
0
] ==
0
)
return
-
1
;
// initialization
int
maxReach = arr[
0
];
int
step = arr[
0
];
int
jump =
1
;
// Start traversing array
for
(
int
i =
1
; i < arr.length; i++) {
// Check if we have reached
// the end of the array
if
(i == arr.length -
1
)
return
jump;
// updating maxReach
maxReach = Math.max(maxReach, i + arr[i]);
// we use a step to get to the current index
step--;
// If no further steps left
if
(step ==
0
) {
// we must have used a jump
jump++;
// Check if the current
// index/position or lesser index
// is the maximum reach point
// from the previous indexes
if
(i >= maxReach)
return
-
1
;
// re-initialize the steps to the amount
// of steps to reach maxReach from position i.
step = maxReach - i;
}
}
return
-
1
;
}
// Driver method to test the above function
public
static
void
main(String[] args)
{
int
arr[] =
new
int
[] {
1
,
3
,
5
,
8
,
9
,
2
,
6
,
7
,
6
,
8
,
9
};
// calling minJumps method
System.out.println(minJumps(arr));
}
}
OUTPUT:
3
- Get link
- X
- Other Apps
Comments
Post a Comment