Exemplo n.º 1
0
 public boolean parkVehicle(Vehicle vehicle) {
   if (availableSpots() < vehicle.getSpotsNeeded()) {
     return false;
   }
   int spotNumber = findAvailableSpots(vehicle);
   if (spotNumber < 0) {
     return false;
   }
   return parkStartingAtSpot(spotNumber, vehicle);
 }
Exemplo n.º 2
0
 private int findAvailableSpots(Vehicle vehicle) {
   int spotsNeeded = vehicle.getSpotsNeeded();
   int lastRow = -1;
   int spotsFound = 0;
   for (int i = 0; i < spots.length; i++) {
     ParkingSpot spot = spots[i];
     if (lastRow != spot.getRow()) {
       spotsFound = 0;
       lastRow = spot.getRow();
     }
     if (spot.canFitVehicle(vehicle)) {
       spotsFound++;
     } else {
       spotsFound = 0;
     }
     if (spotsFound == spotsNeeded) {
       return i - (spotsNeeded - 1);
     }
   }
   return -1;
 }