88 lines
2.0 KiB
Java
88 lines
2.0 KiB
Java
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* JumpingClouds
|
|
* There is a new mobile game that starts with consecutively numbered clouds.
|
|
* Some of the clouds are thunderheads and others are cumulus. The player can
|
|
* jump on any cumulus cloud having a number that is equal to the number of the
|
|
* current cloud plus or
|
|
*
|
|
* . The player must avoid the thunderheads. Determine the minimum number of
|
|
* jumps it will take to jump from the starting postion to the last cloud. It is
|
|
* always possible to win the game.
|
|
*
|
|
* For each game, you will get an array of clouds numbered
|
|
* if they are safe or
|
|
*
|
|
* if they must be avoided.
|
|
*
|
|
* Example
|
|
* Index the array from . The number on each cloud is its index in the list so
|
|
* the player must avoid the clouds at indices and . They could follow these two
|
|
* paths: or . The first path takes jumps while the second takes . Return
|
|
*
|
|
* .
|
|
*
|
|
* Function Description
|
|
*
|
|
* Complete the jumpingOnClouds function in the editor below.
|
|
*
|
|
* jumpingOnClouds has the following parameter(s):
|
|
*
|
|
* int c[n]: an array of binary integers
|
|
*
|
|
* Returns
|
|
*
|
|
* int: the minimum number of jumps required
|
|
*
|
|
* Input Format
|
|
*
|
|
* The first line contains an integer
|
|
* , the total number of clouds. The second line contains space-separated binary
|
|
* integers describing clouds where
|
|
*
|
|
* .
|
|
*
|
|
* Constraints
|
|
*
|
|
* Output Format
|
|
*
|
|
* Print the minimum number of jumps needed to win the game.
|
|
*
|
|
* Sample Input 0
|
|
*
|
|
* 7
|
|
* 0 0 1 0 0 1 0
|
|
*
|
|
* Sample Output 0
|
|
*
|
|
* 4
|
|
*
|
|
*/
|
|
public class JumpingClouds {
|
|
public static void main(String[] args) {
|
|
|
|
int[] steps = { 0, 0, 0, 0, 0, 1, 0 };
|
|
System.out.println(JumpsCount(steps));
|
|
}
|
|
|
|
private static int JumpsCount(int[] clounds) {
|
|
|
|
int jumps = 0;
|
|
int i = 0;
|
|
while (i < clounds.length - 1) {
|
|
if (i + 2 == clounds.length || clounds[i + 2] == 1) {
|
|
i++;
|
|
jumps++;
|
|
} else {
|
|
i += 2;
|
|
jumps++;
|
|
}
|
|
}
|
|
return jumps;
|
|
}
|
|
|
|
}
|