LeetCode 1603. Design Parking System Solution
Problem
Design Parking System - LeetCode
Approach to Problem Solving
This is a question about object creation in Java.
The first solution demonstrates basic object creation, making it suitable for collaboration and future updates.
The second solution is highly efficient for this specific problem, but it might be challenging to update later.
Github Link
https://github.com/eunhanlee/LeetCode_1603_DesignParkingSystem_Solution.git
1st Solution
class ParkingSystem {
private int bigSlots;
private int mediumSlots;
private int smallSlots;
/**
* Creates a new ParkingSystem with specified slots for each vehicle type.
*
* @param big Number of available slots for big vehicles.
* @param medium Number of available slots for medium vehicles.
* @param small Number of available slots for small vehicles.
*/
public ParkingSystem(int big, int medium, int small) {
this.bigSlots = big;
this.mediumSlots = medium;
this.smallSlots = small;
}
/**
* Adds a vehicle of the given type to the parking system.
*
* @param carType Type of the vehicle to be parked (1 for big, 2 for medium, 3 for small).
* @return True if the vehicle is successfully parked, otherwise false.
*/
public boolean addCar(int carType) {
switch (carType) {
case 1:
if (this.bigSlots > 0) {
this.bigSlots--;
return true;
}
break;
case 2:
if (this.mediumSlots > 0) {
this.mediumSlots--;
return true;
}
break;
case 3:
if (this.smallSlots > 0) {
this.smallSlots--;
return true;
}
break;
}
return false;
}
}
2nd Solution
class ParkingSystem {
int[] slots;
/**
* Creates a new parking system with given slot sizes.
*
* @param big Number of slots available for big vehicles.
* @param medium Number of slots available for medium vehicles.
* @param small Number of slots available for small vehicles.
*/
public ParkingSystem(int big, int medium, int small) {
slots = new int[]{big, medium, small};
}
/**
* Adds a vehicle of the given type to the parking system.
*
* @param carType Type of the vehicle to be parked (1 for big, 2 for medium, 3 for small).
* @return True if the vehicle is successfully parked, otherwise false.
*/
public boolean addCar(int carType) {
return --slots[carType - 1] >= 0;
}
}