ကားပါကင်စနစ် Leetcode Solution ကိုဒီဇိုင်းဆွဲပါ


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် အမေဇုံ
ပုံစံ

ပြProbleနာဖော်ပြချက်

ဤပြproblemနာတွင်ကားရပ်နားရန်နေရာဒီဇိုင်းဆွဲရမည်။ ကျွန်ုပ်တို့တွင်ကားရပ်နားရန်နေရာ (၃) မျိုးရှိသည်။ ဤကားရပ်နားရန်နေရာအားလုံးတွင်ကန ဦး နေရာလွတ်အချို့သတ်မှတ်ထားသည်။
လိုပဲကြီးမားတဲ့အာကာသအမျိုးအစားမှာကျနော်တို့အများဆုံးကားများနေရာချနိုင်ပါတယ်။ အသေးစားအာကာသယာဉ်တွင်ကျွန်ုပ်တို့အများဆုံးကားများကိုနေရာချနိုင်သည်။ အလယ်အလတ်တန်းစားနေရာ၌ကားမီတာများကိုလည်းထည့်နိုင်သည်။

ပေးထားသောအတန်း၏ဆောက်လုပ်ရေးလုပ်ငန်းတွင်ကျွန်ုပ်တို့အား b, s နှင့် m (နေရာသုံးခုလုံး၏အများဆုံးအကန့်အသတ်) တန်ဖိုးများပေးထားသည်။ အခုဒီကားတွေထဲမှာကားတွေနေရာချရမယ်။ အဆိုပါကားများလည်းသုံးအမျိုးအစားကြီးတွေသေးငယ်တဲ့နှင့်အလတ်စား၏ဖြစ်ကြသည်။ ထိုသူတို့ကသူတို့ရဲ့သက်ဆိုင်ရာယာဉ်ရပ်နားအများကြီးသို့သာထားနိုင်ပါတယ်။ ကားသေးသေးလေးလိုပဲကားရပ်နားရန်နေရာမှာသာနေရာချနိုင်သည်။

ဒီကားတွေကိုနေရာချနိုင်၊ ဤရည်ရွယ်ချက်အတွက် addCar (int type) ကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ ၄ င်းသည်ဤအမျိုးအစားကားကိုနေရာချနိုင်လျှင်ဖြစ်စေ၊ မှားယွင်းသည်ဖြစ်စေပြန်ပေးလိမ့်မည်။

ကားပါကင်စနစ် Leetcode Solution ကိုဒီဇိုင်းဆွဲပါ

နမူနာ

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

ရှင်းလင်းချက်:

1. parkingSystem.addCar (1); ကြီးမားတဲ့ကားတစ်စီးအတွက် 1 ရရှိနိုင် slot ကသောကွောငျ့ // စစ်မှန်တဲ့ပြန်လာ
2. parkingSystem.addCar (2); အလတ်စားကားတစ်စီးအတွက် 1 ရရှိနိုင် slot ကသောကွောငျ့ // စစ်မှန်တဲ့ပြန်လာ
3. parkingSystem.addCar (3); သေးငယ်တဲ့ကားတစ်စီးအဘို့အဘယ်သူမျှမရရှိနိုင် slot ကလည်းမရှိသောကြောင့် // false return
4. parkingSystem.addCar (1); ကြီးမားတဲ့ကားအတွက်မရရှိနိုင် slot ကသောကွောငျ့ // မှားယွင်းသောပြန်လာ။ ဒါဟာပြီးသားသိမ်းပိုက်ထားသည်။

ချဉ်းကပ်နည်း

ဒီမှာနှစ်ခုလုပ်ရမယ်။ တစ်ခုမှာပေးထားသောတန်ဖိုးများကိုအသုံးပြုရန်ဖြစ်သည် တည်ဆောက်သူ။ နောက်ထပ်တစ်ခုကတော့ function addCar () ကိုဖန်တီးရန်ဖြစ်သည်။
အခုငါတို့ကားရပ်နားရန်နေရာကျယ်၏နေရာလွတ်မရှိလျှင်ဤတွင်ကားကြီးတစ်စီးထည့်ရမည်ဆိုပါစို့။ ဒီကားကိုနေရာချပြီးနေရာလွတ်က b-1 အထိကျသွားတယ်။
ကားကြီးတွေအတွက်နေရာလွတ်မရှိရင်ဘယ်လိုလုပ်မလဲ။ ဆိုလိုသည်မှာ b = 0 ဆိုလျှင်မည်သည့်ကားကြီးကိုကျွန်ုပ်တို့မထားနိုင်ပါ။

ကျွန်ုပ်တို့၏ချဉ်းကပ်မှုသည်လည်းအတူတူပင်ဖြစ်သည်။ ကားရပ်နားရန်နေရာတစ်ခုစီ၏နေရာလွတ်အရေအတွက်ကိုပြသရန်၊ ကျွန်ုပ်တို့သည်အတန်းထဲတွင်ကမ္ဘာလုံးဆိုင်ရာပြောင်းလဲမှုသုံးခုကိုဖန်တီးခဲ့သည် (ကြီးသည်၊ သေးငယ်သည်နှင့်အလတ်စား) ။ ကျနော်တို့ကသူတို့ကိုတန်ဖိုးများကို constructor တွင်ပေးထားသောတန်ဖိုးများနှင့်စတင်သည်။
ယခုကျွန်ုပ်တို့သည် addCar () တောင်းဆိုမှုကိုလုပ်ဆောင်နိုင်သည်။

carType အမျိုးအစားကားတစ်စီးလာတိုင်း၊ သက်ဆိုင်ရာကားရပ်နားရန်နေရာရှိနေရာအရေအတွက်ကိုစစ်ဆေးပါမည်။ အကယ်၍ နေရာအရေအတွက်သည် ၀ ဖြစ်ပါကကျွန်ုပ်တို့သည်ဤကားကိုနေရာ ချ၍ မရပါ။ ဒါကြောင့်ကျနော်တို့ကမှားယွင်းတဲ့ပြန်လာပါလိမ့်မယ်။ ကျန်တဲ့အပိုင်းကတော့ဒီကားကိုနေရာချပြီးအဲ့ဒီအာကာသနံပါတ်ကို ၁ နဲ့လျှော့ချပြီး true ပြန်လာပါလိမ့်မယ်။

အကောင်အထည်ဖော်ရေး

ဒီဇိုင်းကားရပ်ရန်စနစ် Leetcode Solution အတွက် 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

Design Parking System အတွက် Leetcode Solution အတွက် Java Program

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

ဒီဇိုင်းကားရပ်ရန်စနစ် Leetcode Solution အတွက်ရှုပ်ထွေးမှုဆန်းစစ်ခြင်း

အချိန်ရှုပ်ထွေး

အို (၁) အခြား algorithm များမှာ algorithm တွင်ရိုးရှင်းပါသည်။ ထို့ကြောင့်အချိန်ရှုပ်ထွေးအို (1) ဖြစ်ပါတယ်။

အာကာသရှုပ်ထွေးမှု 

အို (၁) အပိုအာကာသမသုံးပါ။