Problem Statement
Bob recently went to Mars.
There are N cities on Mars. The cities all lie on a circular railroad and they are numbered 0 through N-1 along the railroad. More precisely, there is a railroad segment that connects cities N-1 and 0, and for each i (0 <= i <= N-2) there is a railroad segment that connects cities i and i+1. Trains travel along the railroad in both directions.
You are given a
You are also given
Definition
- Class:
- TravelOnMars
- Method:
- minTimes
- Parameters:
- int[], int, int
- Returns:
- int
- Method signature:
- int minTimes(int[] range, int startCity, int endCity)
- (be sure your method is public)
Constraints
- range will contain N elements, where N is between 2 and 50, inclusive.
- Each element of range will be between 1 and 50, inclusive.
- startCity will be between 0 and N-1, inclusive.
- endCity will be between 0 and N-1, inclusive.
- startCity and endCity will be different.
Examples
{2,1,1,1,1,1}
1
4
Returns: 2
Bob wants to get from city 1 to city 4. The optimal solution is to travel from city 1 to city 0, and then (as range[0]=2) from city 0 to city 4.
{2,1,1,1,1,1}
4
1
Returns: 3
This is the same test case as Example 0, only startCity and endCity have been swapped. Note that the answer is now 3 instead of 2.
{2,1,1,2,1,2,1,1}
2
6
Returns: 3
Bob starts in city 2. There are two optimal routes: (2->3->5->6) and (2->1->0->6).
{3,2,1,1,3,1,2,2,1,1,2,2,2,2,3}
6
13
Returns: 4
{2,4,2,3,4,1,4,2,5,4,3,3,5,4,5,2,2,4,4,3,3,4,2,3,5,4,2,4,1,3,2,3,4,1,1,4,4,3,5,3,2,1,4,1,4}
24
8
Returns: 5
{1,1,2,3,3,4,3,3,4,4,5,5,2,2,3,1,3,2,3,1,5,2,2,2,2,4,1,3,4,3,5,1,5,5,4,5,3,5,5,3,2,2,2,4,1,3,3}
0
22
Returns: 8
{2,2,1,4,5,1,5,1,5,2,3,1,4,5,5,4,4,4,1,2,4,4,2,3,4,2,1,3,2,3,5,3,3,3,2,3,2,1,3,2,5}
3
23
Returns: 6
{3,5,5,2,3,5,2,2,2,4,5,5,1,5,4,5,2,1,3,1,5,5,2,3,1,5,2,2,4,4,5,1,4,2,1,3,5,1,4,4,2,1,5}
4
23
Returns: 5
{1,2,2,4,2,4,3,5,2,1,4,1,1,2,1,2,4,2,2,1,3,3,4,4,4,4,2,5,4,3,2,2,4,2,5,4,2,1,1,4,5,5,3,3,3,4,4,5}
2
28
Returns: 7
{3,2,4,1,4,3,2,2,5,5,3,1,4,3,3,3,2,3,2,2,5,3,5,5,3,5,3,1,4,5,2,3,5,4,1,1,2,5,4,4,3,3,3,2,5,4,4,2,5}
48
25
Returns: 6
{1,3,4,5,2,2,2,2,2,2,4,1,5,4,2,2,2,2,4,1,5,5,4,1,3,1,2,5,3,2,2,3,5,5,4,1,5,2,2,5,1,2,2,5,3}
20
44
Returns: 6
{1,5,4,2,1,5,3,4,3,2,2,2,1,4,2,2,4,5,5,5,5,5,1,5,3,3,4,2,4,1,3,3,1,3,2,4,4,5,5,3,4}
20
39
Returns: 6
{4,3,5,3,5,3,2,4,4,5,2,2,4,1,3,1,2,1,2,3,4,1,4,4,3,2,1,1,2,3,1,5,1,3,2,5,2,1,2,1,2,5,5,3,5,5,5}
0
16
Returns: 4
{3,5,2,4,2,1,2,3,4,2,4,1,1,1,3,5,2,1,1,1,4,3,5,3,3,2,3,4,1,2,5,1,5,3,5,1,5,2,2,4,2,4,2,1,4,3}
6
29
Returns: 8
{5,3,1,3,1,4,5,2,1,2,2,5,5,4,5,3,5,3,2,5,4,2,4,1,5,4,1,4,1,1,1,4,4,5,2,3,2,5,3,3,5,5,4,4,1,5,4}
43
25
Returns: 6
{2,1,3,4,4,4,4,4,5,4,3,1,4,1,4,5,1,4,5,4,3,1,3,4,4,4,1,3,3,4,3,5,1,4,1,1,3,3,5,2,1,4,1,5,1,2,2,2}
6
22
Returns: 5
{3,4,1,1,1,5,1,2,5,5,5,2,5,2,3,1,3,3,1,3,2,3,5,2,4,5,5,2,1,2,3,4,4,2,1,2,4,5,4,5,4,5,5,1,5,4,1,2,5}
21
42
Returns: 6
{4,2,1,4,1,4,2,4,2,1,1,2,5,2,1,4,5,5,3,4,4,4,2,5,4,1,4,1,5,3,5,1,4,3,3,1,1,3,3,5,1,5,1,3,2,5,2,2}
47
29
Returns: 6
{4,2,4,5,5,2,3,5,4,4,5,5,1,1,2,3,1,3,2,5,1,3,4,2,3,4,1,1,4,2,2,5,2,1,2,3,3,4,4,1,1}
13
31
Returns: 8
{9,7,12,11,3,4,9,7,15,2,9,6,3,1,14,11,2,10,7,6,9,8,12,1,8,10,3,3,12,7,9,10,5,14,13,10,3,12,7,2,15,2,12,9,5}
19
31
Returns: 2
{13,13,4,1,6,7,2,5,3,14,7,11,3,7,12,10,15,5,5,9,3,8,12,4,12,15,1,1,1,10,9,6,4,3,7,14,1,9,3,7,3}
25
2
Returns: 2
{13,5,1,12,4,15,8,2,11,8,6,4,12,14,2,5,7,12,11,5,9,10,10,13,4,13,10,4,14,14,10,3,13,8,6,10,9,11,15,8,4,3,11,11,7,13}
44
30
Returns: 2
{11,5,11,12,12,2,5,10,14,7,6,2,11,4,12,3,10,4,3,5,3,6,3,3,12,8,2,3,1,7,11,12,12,15,12,8,1,10,8,4,15,6,1,7,14,1,3,3,2}
22
37
Returns: 3
{14,1,6,13,15,12,13,13,13,3,7,7,2,15,5,12,11,10,13,6,6,13,5,6,14,10,10,7,5,10,9,1,10,6,5,11,1,4,10,4,14,10,2,12,13,12,2,15,11,4}
49
19
Returns: 3
{15,3,4,14,13,5,7,5,1,6,12,8,5,1,9,10,10,3,9,11,11,7,1,10,6,9,2,2,3,5,1,13,3,13,3,1,7,14,11,7,15,9}
22
33
Returns: 2
{15,1,8,11,8,1,12,1,5,13,11,12,4,2,10,6,2,13,3,5,9,14,13,13,6,3,14,1,15,2,5,13,5,1,13,14,1,15,8,15,9,7,8,5,11,12,13}
13
39
Returns: 3
{3,10,10,14,4,6,12,3,8,1,3,3,10,11,7,9,8,13,2,8,15,7,3,4,14,5,9,11,13,3,14,11,9,14,15,15,1,6,14,1,11,6,12,6,10,4,6,13,12}
10
46
Returns: 3
{4,1,2,14,10,3,12,6,1,13,9,7,8,4,1,13,4,10,7,10,4,9,4,14,4,6,15,5,12,10,13,4,3,14,4,2,7,14,9,5,7,2,7,4,14,10,6,2}
33
0
Returns: 2
{15,10,14,15,11,11,6,5,1,11,1,1,15,13,2,6,6,3,7,7,13,13,6,1,12,15,1,13,5,9,11,7,14,9,11,11,2,9,11,5,8}
28
10
Returns: 2
{3,6,12,6,6,14,4,7,14,12,12,4,4,11,11,9,10,13,6,8,7,8,12,14,1,2,15,9,15,11,14,13,12,3,5,9,7,14,2,10,7,14,14,12,13}
1
16
Returns: 2
{8,12,8,1,8,2,15,1,7,9,12,9,5,8,10,13,9,7,7,3,11,11,15,9,8,5,4,7,3,4,15,9,9,10,9,8,15,7,14,3,7,13,10,14,7,3,3,3,6}
10
40
Returns: 2
{9,15,5,1,3,8,4,13,1,10,5,14,13,10,2,7,3,1,12,12,10,5,3,13,8,14,6,3,3,7,10,6,4,2,8,6,7,4,9,2,14,5,13,7,8,2,4,2,1,3}
11
46
Returns: 2
{3,1,2,3,14,2,4,9,5,9,12,1,15,8,12,9,1,11,3,9,11,12,14,13,3,12,3,15,2,6,9,10,9,11,11,10,4,15,13,5,12,9,12,5,10,5,1}
46
21
Returns: 4
{11,15,9,13,7,15,11,8,6,6,11,8,12,12,13,15,12,4,10,10,5,7,8,6,6,6,3,1,8,8,11,2,9,3,13,2,7,11,7,2,13,9}
38
28
Returns: 2
{50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50}
27
2
Returns: 1
{50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50}
4
35
Returns: 1
{1,2,1,1,2,2,1,2,2,2,1,1,2,2,2,2,1,1,2,1,2,1,1,2,1,2,2,1,2,2,2,1,2,1,1,2,2,1,1,1,1,2,2,1,1,2,1,1,1}
36
10
Returns: 16
{2,1,1,1,2,1,1,1,1,1,2,1,2,2,2,1,1,1,1,1,2,2,1,1,1,2,1,2,2,1,2,1,2,2,1,2,1,2,2,2,1,2,1,1,2,1,2,2,1,2}
44
20
Returns: 15
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
48
23
Returns: 25
{50, 1, 1, 1, 1, 1, 1 }
0
5
Returns: 1
{1, 50, 1 }
1
2
Returns: 1
{50, 50 }
0
1
Returns: 1
{20, 1, 1, 1, 1, 1, 1, 3, 1, 1, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 7, 1, 1 }
7
34
Returns: 3
{50, 50, 50, 50, 50, 50 }
1
4
Returns: 1
{1, 1, 1, 1, 5, 1, 1, 1, 1, 1 }
3
0
Returns: 2
{50, 50, 50, 50, 50 }
1
4
Returns: 1
{50, 50, 50, 50, 50, 50, 50 }
0
4
Returns: 1
{50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }
0
1
Returns: 1
{50, 50, 50, 50, 50 }
1
2
Returns: 1
{50, 50, 50 }
1
2
Returns: 1
{50, 1, 1 }
0
2
Returns: 1
{50, 50, 50, 50 }
0
1
Returns: 1
{50, 50, 50 }
0
2
Returns: 1
{1, 1, 1 }
2
0
Returns: 1
{3, 2, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 2, 3 }
0
8
Returns: 3
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
12
17
Returns: 2
{1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
0
16
Returns: 2
{50, 1 }
0
1
Returns: 1
{50, 1, 1, 1, 1, 1, 1, 1 }
0
3
Returns: 1
{1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 }
5
8
Returns: 2
{50, 50, 50, 50 }
0
2
Returns: 1
{50, 50, 50, 50, 50, 50, 50 }
1
3
Returns: 1
{1, 14, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 2, 3 }
0
13
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 1 }
9
5
Returns: 3
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6 }
10
6
Returns: 3
{1, 1, 1, 1, 1, 1, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
0
12
Returns: 7
{50, 1, 1, 1 }
0
2
Returns: 1
{4, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
1
4
Returns: 2
{50, 1, 50, 1, 50 }
1
3
Returns: 2
{50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
3
10
Returns: 4
{2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
0
6
Returns: 2
{3, 2, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 2, 3 }
0
1
Returns: 1
{46, 49, 49, 47, 48, 45 }
1
4
Returns: 1
{1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 30, 1, 1, 1 }
0
30
Returns: 3
{10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
1
15
Returns: 7
{10, 1, 1, 1, 1, 1, 1, 1, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
1
25
Returns: 3
{50, 50 }
1
0
Returns: 1
{1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
0
26
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
0
14
Returns: 14
{1, 50, 1, 1, 1 }
0
2
Returns: 2
{3, 2, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 2, 3 }
0
13
Returns: 1
{12, 1, 1, 1, 1 }
0
2
Returns: 1
{3, 3, 2, 2, 3, 2, 1, 1, 2, 3 }
0
4
Returns: 2
{1, 1, 1, 3, 2, 3, 1, 1, 1 }
4
8
Returns: 2
{1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
5
13
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 4, 1, 1, 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
20
40
Returns: 4
{4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
1
4
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6 }
0
3
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5 }
0
3
Returns: 2
{1, 7, 1, 1, 1, 1, 50, 50, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 50, 50, 1, 1, 1 }
0
10
Returns: 3
{4, 1, 1, 1, 1, 1, 1, 1, 1 }
1
4
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
48
49
Returns: 1
{50, 50, 50, 50, 50, 50, 50 }
0
3
Returns: 1
{50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
4
9
Returns: 5
{11, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
3
11
Returns: 3
{50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }
0
14
Returns: 1
{1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
4
0
Returns: 3
{50, 50, 50, 50, 50 }
0
3
Returns: 1
{50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
0
2
Returns: 1
{50, 50, 50, 50, 50, 50, 50 }
0
6
Returns: 1
{1, 1, 1, 1, 1 }
4
0
Returns: 1
{50, 50, 50 }
0
1
Returns: 1
{1, 1, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
2
8
Returns: 3
{50, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
6
5
Returns: 1
{1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1 }
9
14
Returns: 3
{14, 18, 23, 50, 24, 28, 14, 34, 39, 20, 26, 20, 12, 39, 13, 40, 5, 2, 24, 18, 15, 32, 15, 39, 46, 49, 3, 2, 41, 19, 49, 6, 38, 21, 5, 12, 49, 20, 45, 39, 39, 20, 10, 3, 10, 22, 42, 17, 23, 15 }
33
37
Returns: 1
{1, 1, 1, 1, 1 }
0
4
Returns: 1
{50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
5
17
Returns: 6
{45, 29, 24, 10, 41, 16, 43, 43, 38, 4, 28, 30, 41, 13, 4, 20, 10, 8, 11, 34, 50, 29 }
16
11
Returns: 1
{50, 1, 1, 1, 1, 1, 1 }
0
2
Returns: 1
{1, 1, 1, 10, 1, 10, 11, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1 }
39
17
Returns: 4
{1, 1, 1, 1, 1, 1, 1, 1, 4 }
0
3
Returns: 2
{49, 1, 49, 1, 49, 1, 1 }
0
4
Returns: 1
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
14
15
Returns: 1
{1, 1, 1, 1, 2, 1 }
4
0
Returns: 1
{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }
0
25
Returns: 13
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6 }
0
3
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
15
12
Returns: 2
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
11
14
Returns: 2
{2, 7, 3, 6, 3, 2, 5 }
1
5
Returns: 1
{2, 10, 1, 1, 1, 1, 1, 1, 1, 1 }
0
5
Returns: 2