Dizayn Park Sistemi Leetcode Həlli

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Amazon
alqoritmlər kodlaşdırma Layihə müsahibə müsahibə hazırlığı LeetCode LeetCodeSolutionsBaxılıb 35

Problem bəyanat

Bu problemdə bir park yeri dizayn etməliyik. 3 növ park yerimiz var (böyük, orta və kiçik). Bütün bu park yerlərində əvvəlcə müəyyən sayda boş yuva var.
Eynən, böyük bir məkanda ən çox b avtomobil yerləşdirə bilərik. Kiçik bir məkanda ən çox avtomobil yerləşdirə bilərik və orta məkanda m maşın yerləşdirə bilərik.

Verilən sinifin konstruktorunda b, s və m dəyərləri (hər üç boşluğun maksimum həddi) verilir. İndi bəzi maşınları bu yerlərə yerləşdirməliyik. Avtomobillər də kiçik və orta üç növdür. Və bunlar yalnız öz avtoparklarına yerləşdirilə bilər. Kiçik avtomobil kimi yalnız kiçik park yerində yerləşdirmək olar.

Bu avtomobilləri yerləşdirə biləcəyimizi və ya etməməyimizi öyrənməliyik. Bunun üçün addCar (int type) funksiyası yaratmalıyıq ki, bu tip avtomobil yerləşdirilə bilsə geriyə qayıtsın, əks halda yalan qayıtsın.

Dizayn Park Sistemi Leetcode HəlliPin

misal

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

Explanation:

1. parkingSystem.addCar (1); // böyük bir avtomobil üçün 1 mövcud yuva olduğu üçün doğru qayıdın
2. parkingSystem.addCar (2); // orta səviyyəli bir avtomobil üçün 1 mövcud yuva olduğu üçün doğru qayıdın
3. parkingSystem.addCar (3); // kiçik bir avtomobil üçün boş yer olmadığına görə false qayıdın
4. parkingSystem.addCar (1); // böyük bir avtomobil üçün mövcud yuva olmadığına görə false qayıdın. Artıq işğal altındadır.

Yanaşma

Burada iki tapşırıq etməliyik. Bunlardan biri verilənlərə verilən dəyərlərdən istifadə etməkdir konstruktor. Başqa bir funksiya addCar () yaratmaqdır.
İndi düşünün ki, böyük bir dayanacağın boş yerimiz varsa və buna böyük bir maşın yerləşdirməliyik. Sadəcə, bu maşını yerləşdirəcəyik və boş yerimiz b-1-ə enir.
Böyük maşınlar üçün boş yerimiz yoxdursa nə olar? yəni b = 0 olduqda heç bir böyük maşın yerləşdirə bilmərik.

Bizim yanaşmamız da eyni şeyi edir. Hər dayanacaq boşluğunun sayını göstərmək üçün verilmiş sinifdə üç qlobal dəyişən yaratdıq (böyük, kiçik və orta olsun). Dəyərlərini konstruktorda verilmiş dəyərlərlə başlatırıq.
İndi addCar () tələbini işləyə bilərik.

Nə vaxt bir carType tipli bir avtomobil gəlsə, müvafiq dayanacaqdakı boşluqların sayını yoxlayacağıq. Boşluq sayı 0 olardısa, bu maşını yerləşdirə bilmərik. Beləliklə yalançı qayıdacağıq. Əks təqdirdə bu avtomobili yerləşdirəcəyik və bu tip yer sayını 1 azaldaraq gerçəkliyə dönəcəyik.

Həyata keçirilməsi

Layihə Park Sistemi Leetcode Həlli üçün C ++ Proqramı

#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

Dizayn Park Sistemi Leetcode Həlli üçün Java Proqramı

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

Dizayn Park Sistemi Leetcode Solution üçün Mürəkkəblik Analizi

Zamanın mürəkkəbliyi

O (1): Alqoritmin sadə və ya başqa tapşırıqları var. Beləliklə zamanın mürəkkəbliyi O (1) -dir.

Kosmik Mürəkkəblik 

O (1): əlavə yer istifadə edilmir.

Şərh yaz

Translate »
1