zoukankan      html  css  js  c++  java
  • [LeetCode] 1603. Design Parking System

    Design a parking system for a parking lot. The parking lot has three kinds of parking spaces: big, medium, and small, with a fixed number of slots for each size.

    Implement the ParkingSystem class:

    • ParkingSystem(int big, int medium, int small) Initializes object of the ParkingSystem class. The number of slots for each parking space are given as part of the constructor.
    • bool addCar(int carType) Checks whether there is a parking space of carType for the car that wants to get into the parking lot. carType can be of three kinds: big, medium, or small, which are represented by 12, and 3 respectively. A car can only park in a parking space of its carType. If there is no space available, return false, else park the car in that size space and return true.

    Example 1:

    Input
    ["ParkingSystem", "addCar", "addCar", "addCar", "addCar"]
    [[1, 1, 0], [1], [2], [3], [1]]
    Output
    [null, true, true, false, false]
    
    Explanation
    ParkingSystem parkingSystem = new ParkingSystem(1, 1, 0);
    parkingSystem.addCar(1); // return true because there is 1 available slot for a big car
    parkingSystem.addCar(2); // return true because there is 1 available slot for a medium car
    parkingSystem.addCar(3); // return false because there is no available slot for a small car
    parkingSystem.addCar(1); // return false because there is no available slot for a big car. It is already occupied. 

    Constraints:

    • 0 <= big, medium, small <= 1000
    • carType is 12, or 3
    • At most 1000 calls will be made to addCar

    设计停车系统。

    请你给一个停车场设计一个停车系统。停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位。

    请你实现 ParkingSystem 类:

    ParkingSystem(int big, int medium, int small) 初始化 ParkingSystem 类,三个参数分别对应每种停车位的数目。
    bool addCar(int carType) 检查是否有 carType 对应的停车位。 carType 有三种类型:大,中,小,分别用数字 1, 2 和 3 表示。一辆车只能停在  carType 对应尺寸的停车位中。如果没有空车位,请返回 false ,否则将该车停入车位并返回 true 。


    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/design-parking-system
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    这是一道设计题。思路是用三个变量分别追踪三种size的停车位到底还剩几个,如果被用完了就只能return false了。

    时间O(n)

    空间O(1) - 只有三个变量

    Java实现

     1 class ParkingSystem {
     2     int[] space;
     3 
     4     public ParkingSystem(int big, int medium, int small) {
     5         space = new int[] { big, medium, small };
     6     }
     7 
     8     public boolean addCar(int carType) {
     9         if (space[carType - 1]-- > 0) {
    10             return true;
    11         } else {
    12             return false;
    13         }
    14     }
    15 }
    16 
    17 /**
    18  * Your ParkingSystem object will be instantiated and called as such:
    19  * ParkingSystem obj = new ParkingSystem(big, medium, small);
    20  * boolean param_1 = obj.addCar(carType);
    21  */

    LeetCode 题目总结

  • 相关阅读:
    (Java实现) 洛谷 P1106 删数问题
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1106 删数问题
    目测ZIP的压缩率
  • 原文地址:https://www.cnblogs.com/cnoodle/p/14559856.html
Copyright © 2011-2022 走看看