1603. Leetcode的设计停车系统 - 极其简单且逻辑的Java解决方案比90%击败
#设计 #java #math #simulation

直觉

问题是设计一个可以容纳不同类型的汽车(大型,中,小)的停车系统,并且每种类型都有固定数量的插槽。该系统应该能够检查给定汽车类型是否可用插槽,并在可能的情况下停放。

方法

一种可能的方法是使用三个变量来存储每种汽车类型的插槽数量。类的构造函数应使用给定值初始化这些变量。如果有一个可用的插槽,则ADDCAR方法应检查CAR类型并降低相应变量。根据汽车是否停放,它也应该返回对还是错。

复杂

  • 时间复杂性:$$ o(1)$$
  • 空间复杂性:$$ o(1)$$

代码

class ParkingSystem {
    private int big;
    private int medium;
    private int 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 && big > 0) {
            big -= 1;
            return true;
        } else if (carType == 2 && medium > 0) {
            medium -= 1;
            return true;
        } else if (carType == 3 && small > 0) {
            small -= 1;
            return true;
        } else {
            return false;
        }
    }
}

/**
 * Your ParkingSystem object will be instantiated and called as such:
 * ParkingSystem obj = new ParkingSystem(big, medium, small);
 * boolean param_1 = obj.addCar(carType);
 */