डिजाइन पार्किंग सिस्टम Leetcode समाधान


कठिनाई स्तर आसान
में अक्सर पूछा वीरांगना
डिज़ाइन

समस्या का विवरण

इस समस्या में, हमें एक पार्किंग स्थल डिजाइन करना होगा। हमारे पास 3 प्रकार के पार्किंग स्थान हैं (बड़ा, मध्यम और छोटा)। इन सभी पार्किंग स्थलों में शुरू में कुछ निश्चित संख्या में खाली स्लॉट हैं।
जैसे, बड़े प्रकार के स्पेस में, हम ज्यादातर बी कारों में जगह बना सकते हैं। छोटे प्रकार के अंतरिक्ष में, हम अधिकांश कारों में और मध्यम प्रकार के स्थान पर रख सकते हैं, हम एम कारों को रख सकते हैं।

हमें दिए गए वर्ग के निर्माता में मान बी, एस और एम (तीनों स्थानों की अधिकतम सीमा) दिए गए हैं। अब, हमें इन स्पेस में कुछ कारों को रखना है। कारें भी तीन प्रकार की होती हैं बड़ी छोटी और मध्यम। और उन्हें केवल अपने संबंधित पार्किंग स्थल में रखा जा सकता है। जैसे छोटी कार को केवल छोटी पार्किंग में रखा जा सकता है।

हमें यह पता लगाना होगा कि हम इन कारों को रख सकते हैं या नहीं। इस काम के लिए हमें एक फंक्शन addCar (int प्रकार) बनाना होगा जो कि इस प्रकार की कार को रखा जा सकता है या नहीं तो यह सच हो जाएगा या फिर यह गलत है।

डिजाइन पार्किंग सिस्टम Leetcode समाधान

उदाहरण

["ParkingSystem", "addCar", "addCar", "addCar", "addCar"]
[[1, 1, 0], [1], [2], [3], [1]]
[null, true, true, false, false]

स्पष्टीकरण:

1. पार्किंगसिस्टम.डेडकर (1); // वापसी सच है क्योंकि एक बड़ी कार के लिए 1 उपलब्ध स्लॉट है
2. पार्किंगसिस्टम्स.डेडकर (2); // वापसी सच है क्योंकि एक मध्यम कार के लिए 1 उपलब्ध स्लॉट है
3. पार्किंग सिस्टम.डेडकर (3); // गलत है क्योंकि छोटी कार के लिए कोई उपलब्ध स्लॉट नहीं है
4. पार्किंग सिस्टम.डाककार (1); // झूठी है क्योंकि बड़ी कार के लिए कोई उपलब्ध स्लॉट नहीं है। यह पहले से ही कब्जे में है।

दृष्टिकोण

हमें यहां दो कार्य करने हैं। एक को दिए गए मूल्यों का उपयोग करना है निर्माता। एक और फंक्शन addCar () बनाना है।
अब, सोचें कि क्या हमारे पास एक बड़ी पार्किंग के खाली स्थान हैं और हमें इसमें एक बड़ी कार रखनी है। बस, हम इस कार को जगह देंगे और हमारी खाली जगह बी -1 तक जाएगी।
क्या होगा अगर हमारे पास बड़ी कारों के लिए कोई खाली जगह नहीं है? जब बी = 0, हम कोई बड़ी कार नहीं रख सकते।

हमारा दृष्टिकोण वही कर रहा है। प्रत्येक पार्किंग स्लॉट की खाली जगहों की संख्या दिखाने के लिए, हमने दिए गए वर्ग में तीन वैश्विक चर बनाए हैं (बड़े, छोटे और मध्यम)। हम कंस्ट्रक्टर में दिए गए मानों के साथ उनके मूल्यों की शुरुआत कर रहे हैं।
अब, हम AddCar () अनुरोध को संसाधित कर सकते हैं।

जब भी टाइप कार की एक कार आएगी, हम संबंधित पार्किंग स्लॉट में रिक्त स्थान की संख्या की जांच करेंगे। यदि रिक्त स्थान की संख्या 0 होगी, तो हम इस कार को नहीं रख सकते। इसलिए हम झूठे लौटेंगे। एल्स हम इस कार को जगह देंगे और 1 से उस प्रकार की जगह की संख्या को कम कर देंगे और सही वापस आ जाएंगे।

कार्यान्वयन

डिजाइन पार्किंग सिस्टम लेकोडकोड समाधान के लिए C ++ प्रोग्राम

#include<iostream>
using namespace std;

class ParkingSystem {
public:
    
    int big,medium,small;
    ParkingSystem(int big1, int medium1, int small1)
    {
        big=big1;
        medium=medium1;
        small=small1;
    }
    
    bool addCar(int carType)
    {
        if(carType==1){
            if(big==0)return false;
            big--;
        }else if(carType==2){
            if(medium==0)return false;
            medium--;
            
        }else{
            if(small==0)return false;
            small--;
            
        }
        return true;
    }
};


int main()
{
        ParkingSystem obj = ParkingSystem(1,1,0);
        obj.addCar(1)?cout<<"true ":cout<<"false ";
        obj.addCar(2)?cout<<"true ":cout<<"false ";
        obj.addCar(3)?cout<<"true ":cout<<"false ";
        obj.addCar(1)?cout<<"true ":cout<<"false ";
        
        return 0;
}
true true false false

डिज़ाइन पार्किंग सिस्टम लेकोडकोड समाधान के लिए जावा प्रोग्राम

import java.util.*;
import java.lang.*;

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){
            if(big==0)return false;
            big--;
        }else if(carType==2){
            if(medium==0)return false;
            medium--;
            
        }else{
            if(small==0)return false;
            small--;
            
        }
        return true;
    }
}


class Solution
{  
    public static void main(String args[])
    {
        ParkingSystem obj=new ParkingSystem(1,1,0);
        System.out.print(obj.addCar(1)+" ");
        System.out.print(obj.addCar(2)+" ");
        System.out.print(obj.addCar(3)+" ");
        System.out.print(obj.addCar(1)+" ");
    }
}
true true false false

डिजाइन पार्किंग सिस्टम लेकोडकोड समाधान के लिए जटिलता विश्लेषण

समय जटिलता

ओ (1): एल्गोरिथ्म सरल है अगर अन्य कार्य। इस प्रकार समय जटिलता O (1) है।

अंतरिक्ष जटिलता 

ओ (1): कोई अतिरिक्त स्थान का उपयोग नहीं किया गया।