# 1603. Design Parking System ## 題目概要 為停車場設計一個停車系統。停車場有大、中、小三種停車位,每種尺寸都有固定數量的車位。 我們需要實現 ParkingSystem 類: - `ParkingSystem(int big, int medium, int small)` 代表停車場每個大小位置數。 - `addCar(int carType)` 代表要停入一台車。carType可以是大、中、小三種,分別用1、2和 3 表示。如果沒有可用空間返回false,否則返回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. ``` ## 解題技巧 - 直接返回或者 switch case 都行,直接返回速度快,switch case 使用的內存小。 ## 程式碼 ```javascript= /** * @param {number} big * @param {number} medium * @param {number} small */ let arr = []; var ParkingSystem = function(big, medium, small) { arr = [big, medium, small]; }; /** * @param {number} carType * @return {boolean} */ ParkingSystem.prototype.addCar = function(carType) { if (arr[carType - 1] > 0) { arr[carType - 1]--; return true; } else return false; }; /** * Your ParkingSystem object will be instantiated and called as such: * var obj = new ParkingSystem(big, medium, small) * var param_1 = obj.addCar(carType) */ ``` ![](https://i.imgur.com/lgBS7oC.png)