淺談 設計停車系統 問題
阿新 • • 發佈:2021-01-16
技術標籤:資料結構與演算法(刷題篇)c++演算法
設計停車系統
問題:
請你給一個停車場設計一個停車系統。停車場總共有三種不同大小的車位:大,中和小,每種尺寸分別有固定數目的車位。
請你實現 ParkingSystem 類:
ParkingSystem(int big, int medium, int small)
初始化ParkingSystem
類,三個引數分別對應每種停車位的數目。bool addCar(int carType)
檢查是否有 carType 對應的停車位。 carType 有三種類型:大,中,小,分別用數字 1, 2 和 3 表示。一輛車只能停在 carType 對應尺寸的停車位中。如果沒有空車位,請返回false
,否則將該車停入車位並返回true
。
思路:
- 用一個數組儲存三種不同的停車位
- 在建構函式中構造各種停車位數
- 判斷停車位是否滿並讓停車位減一
class ParkingSystem {
public:
ParkingSystem(int big, int medium, int small) {
carPosition[0] = big;
carPosition[1] = medium;
carPosition[2] = small;
}
private:
int carPosition[3];
public:
bool addCar(int carType) {
return carPosition[carType - 1]-- > 0; // 判斷停車位是否滿和讓停車位減一
}
};
/**
* Your ParkingSystem object will be instantiated and called as such:
* ParkingSystem* obj = new ParkingSystem(big, medium, small);
* bool param_1 = obj->addCar(carType);
*/