@@ -96,11 +96,13 @@ public class FlatlandSpaceStations {
96
96
public static int flatlandSpaceStations (int noOfCities , int [] spaceStations ){
97
97
int noSpaceStations = spaceStations .length ;
98
98
99
- if ( noOfCities == 1 && noSpaceStations == 1 ) return 0 ;
99
+ if (noOfCities == noSpaceStations ) return 0 ;
100
+ // if ( noOfCities == 1 && noSpaceStations == 1 ) return 0;
100
101
else if ( noOfCities == 2 && noSpaceStations == 1 ) return 1 ;
101
- else if ( noOfCities == 2 && noSpaceStations == 2 ) return 0 ;
102
+ // else if ( noOfCities == 2 && noSpaceStations == 2 ) return 0;
102
103
else if ( noOfCities == 3 && noSpaceStations == 2 ) return 1 ;
103
104
105
+
104
106
if ( noSpaceStations == 1 ) {
105
107
int firstSpaceStation = spaceStations [0 ];
106
108
@@ -114,12 +116,14 @@ else if ( firstSpaceStation == noSpaceStations-1 || noSpaceStations == 3 )
114
116
return Math .max (Math .abs (firstSpaceStation -1 ), noOfCities -firstSpaceStation );
115
117
}
116
118
117
- int maxDistance = 0 ;
118
119
Arrays .sort (spaceStations );
119
- int i =0 ;
120
+ if (spaceStations [0 ]==0 && spaceStations [1 ] == noOfCities -1 )
121
+ return (spaceStations [1 ]-spaceStations [0 ])/2 ;
120
122
123
+ int maxDistance = 0 ;
124
+ int i =0 ;
121
125
for (; i <noSpaceStations -1 ; i ++){
122
- int distanceDiff = Math . abs ( spaceStations [i ]-spaceStations [i + 1 ]) ;
126
+ int distanceDiff = spaceStations [i + 1 ]-spaceStations [i ] ;
123
127
124
128
if ( maxDistance < distanceDiff )
125
129
maxDistance = distanceDiff ;
@@ -156,6 +160,25 @@ class FlatlandSpaceStationsTest {
156
160
// * The maximum distance being calculated
157
161
// */
158
162
// }
163
+ @ Test
164
+ void hasFourCitiesTwoStationsAtThirdAndFourth () {
165
+ int noOfCities = 4 , expectedMaxDistance = 2 ; // Distance from city four to city 2
166
+ int [] spaceStaions = {2 ,3 };
167
+ int spaceStationsLen = spaceStaions .length ;
168
+
169
+ Assertions .assertEquals (expectedMaxDistance ,
170
+ FlatlandSpaceStations .flatlandSpaceStations (noOfCities , spaceStaions ));
171
+ }
172
+
173
+ @ Test
174
+ void hasFourCitiesTwoStationsAtSecondAndThird () {
175
+ int noOfCities = 4 , expectedMaxDistance = 1 ; // Distance from city four to city 2
176
+ int [] spaceStaions = {1 , 2 };
177
+ int spaceStationsLen = spaceStaions .length ;
178
+
179
+ Assertions .assertEquals (expectedMaxDistance ,
180
+ FlatlandSpaceStations .flatlandSpaceStations (noOfCities , spaceStaions ));
181
+ }
159
182
160
183
@ Test
161
184
void hasFourCitiesTwoStationsAtFirstAndLast () {
0 commit comments