这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战
1603. 设计停车系统
请你给一个停车场设计一个停车系统。停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位。
请你实现 ParkingSystem 类:
ParkingSystem(int big, int medium, int small) 初始化 ParkingSystem 类,三个参数分别对应每种停车位的数目。 bool addCar(int carType) 检查是否有 carType 对应的停车位。 carType 有三种类型:大,中,小,分别用数字 1, 2 和 3 表示。一辆车只能停在 carType 对应尺寸的停车位中。如果没有空车位,请返回 false ,否则将该车停入车位并返回 true 。
示例 1:
输入: ["ParkingSystem", "addCar", "addCar", "addCar", "addCar"] [[1, 1, 0], [1], [2], [3], [1]] 输出: [null, true, true, false, false]
解释: ParkingSystem parkingSystem = new ParkingSystem(1, 1, 0); parkingSystem.addCar(1); // 返回 true ,因为有 1 个空的大车位 parkingSystem.addCar(2); // 返回 true ,因为有 1 个空的中车位 parkingSystem.addCar(3); // 返回 false ,因为没有空的小车位 parkingSystem.addCar(1); // 返回 false ,因为没有空的大车位,唯一一个大车位已经被占据了
解题思路
题目解析:存在三种停车位:大、中、小,每次调用 addCar(carType) 的时候,我们就需要在对应的车型的停车位增加一辆车,如果该车型没有剩余空位,就说明无法停车。我们需要做的就是判断每次调用 addCar 时能否停车。
注意:本题的车位中的车只增加不减少
用三个变量big,medium,small分别维护各类车型的剩余空位的数目,每次 addCar(carType) 的时候就把对应类型的停车空位数目 - 1。如果当前车型的剩余空位数目 == 0,那么说明无法再停车了,就返回 False;否则说明可以停车,就返回 True。
、
代码
class ParkingSystem {
int big,medium,small;
public ParkingSystem(int big, int medium, int small) {
this.big = big;
this.medium = medium;
this.small = small;
}
public boolean addCar(int carType) {
if(carType==1)
return --big>=0;
else if(carType==2)
return --medium>=0;
else return --small>=0;
}
}
/**
* Your ParkingSystem object will be instantiated and called as such:
* ParkingSystem obj = new ParkingSystem(big, medium, small);
* boolean param_1 = obj.addCar(carType);
*/