Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 68aea3b

Browse files
committed
Hackerrank FlatlandSpaceStaion contd..
Assertion fail for hasFourCitiesTwoStationsAtThirdAndFourth
1 parent 42a1556 commit 68aea3b

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

‎src/hackerrank/FlatlandSpaceStations.java

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ public class FlatlandSpaceStations {
9696
public static int flatlandSpaceStations(int noOfCities, int[] spaceStations){
9797
int noSpaceStations = spaceStations.length;
9898

99-
if ( noOfCities == 1 && noSpaceStations == 1 ) return 0;
99+
if (noOfCities == noSpaceStations) return 0;
100+
// if ( noOfCities == 1 && noSpaceStations == 1 ) return 0;
100101
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;
102103
else if ( noOfCities == 3 && noSpaceStations == 2 ) return 1;
103104

105+
104106
if ( noSpaceStations == 1 ) {
105107
int firstSpaceStation = spaceStations[0];
106108

@@ -114,12 +116,14 @@ else if ( firstSpaceStation == noSpaceStations-1 || noSpaceStations == 3 )
114116
return Math.max(Math.abs(firstSpaceStation-1), noOfCities-firstSpaceStation);
115117
}
116118

117-
int maxDistance = 0;
118119
Arrays.sort(spaceStations);
119-
int i=0;
120+
if (spaceStations[0]==0 && spaceStations[1] == noOfCities-1)
121+
return (spaceStations[1]-spaceStations[0])/2;
120122

123+
int maxDistance = 0;
124+
int i=0;
121125
for(; i<noSpaceStations-1; i++){
122-
int distanceDiff = Math.abs(spaceStations[i]-spaceStations[i+1]);
126+
int distanceDiff = spaceStations[i+1]-spaceStations[i];
123127

124128
if ( maxDistance < distanceDiff)
125129
maxDistance = distanceDiff;
@@ -156,6 +160,25 @@ class FlatlandSpaceStationsTest {
156160
// * The maximum distance being calculated
157161
// */
158162
// }
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+
}
159182

160183
@Test
161184
void hasFourCitiesTwoStationsAtFirstAndLast() {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /