|
42727 | 42727 | <ul class="md-nav__list"> |
42728 | 42728 |
|
42729 | 42729 | <li class="md-nav__item"> |
42730 | | - <a href="#solution-1" class="md-nav__link"> |
| 42730 | + <a href="#solution-1-simulation" class="md-nav__link"> |
42731 | 42731 | <span class="md-ellipsis"> |
42732 | | - Solution 1 |
| 42732 | + Solution 1: Simulation |
42733 | 42733 | </span> |
42734 | 42734 | </a> |
42735 | 42735 |
|
@@ -86553,7 +86553,11 @@ <h2 id="description">Description</h2> |
86553 | 86553 | <h2 id="solutions">Solutions</h2> |
86554 | 86554 | <!-- solution:start --> |
86555 | 86555 |
|
86556 | | -<h3 id="solution-1">Solution 1</h3> |
| 86556 | +<h3 id="solution-1-simulation">Solution 1: Simulation</h3> |
| 86557 | +<p>We use an array <span class="arithmatex">\(\textit{cnt}\)</span> of length 4 to represent the number of parking spaces for each type of car, where <span class="arithmatex">\(\textit{cnt}[1]\)</span>, <span class="arithmatex">\(\textit{cnt}[2]\)</span>, and <span class="arithmatex">\(\textit{cnt}[3]\)</span> represent the number of large, medium, and small parking spaces, respectively.</p> |
| 86558 | +<p>During initialization, we set <span class="arithmatex">\(\textit{cnt}[1]\)</span>, <span class="arithmatex">\(\textit{cnt}[2]\)</span>, and <span class="arithmatex">\(\textit{cnt}[3]\)</span> to the number of large, medium, and small parking spaces, respectively.</p> |
| 86559 | +<p>Each time a car parks, we check if there is a corresponding parking space in the parking lot. If not, we return <span class="arithmatex">\(\textit{false}\)</span>; otherwise, we decrement the number of corresponding parking spaces by one and return <span class="arithmatex">\(\textit{true}\)</span>.</p> |
| 86560 | +<p>The time complexity is <span class="arithmatex">\(O(1)\)</span>, and the space complexity is <span class="arithmatex">\(O(1)\)</span>.</p> |
86557 | 86561 | <div class="tabbed-set tabbed-alternate" data-tabs="1:8"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" name="__tabbed_1" type="radio" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">C#</label><label for="__tabbed_1_8">C</label></div> |
86558 | 86562 | <div class="tabbed-content"> |
86559 | 86563 | <div class="tabbed-block"> |
@@ -86744,17 +86748,17 @@ <h3 id="solution-1">Solution 1</h3> |
86744 | 86748 | <span class="normal">19</span> |
86745 | 86749 | <span class="normal">20</span> |
86746 | 86750 | <span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span><span class="w"> </span><span class="nx">ParkingSystem</span><span class="w"> </span><span class="p">{</span> |
86747 | | -<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">count</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">];</span> |
| 86751 | +<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">cnt</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">];</span> |
86748 | 86752 |
|
86749 | 86753 | <span class="w"> </span><span class="kr">constructor</span><span class="p">(</span><span class="nx">big</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="nx">medium</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="nx">small</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
86750 | | -<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="nx">big</span><span class="p">,</span><span class="w"> </span><span class="nx">medium</span><span class="p">,</span><span class="w"> </span><span class="nx">small</span><span class="p">];</span> |
| 86754 | +<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="nx">big</span><span class="p">,</span><span class="w"> </span><span class="nx">medium</span><span class="p">,</span><span class="w"> </span><span class="nx">small</span><span class="p">];</span> |
86751 | 86755 | <span class="w"> </span><span class="p">}</span> |
86752 | 86756 |
|
86753 | 86757 | <span class="w"> </span><span class="nx">addCar</span><span class="p">(</span><span class="nx">carType</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">{</span> |
86754 | | -<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">count</span><span class="p">[</span><span class="nx">carType</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 86758 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">carType</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
86755 | 86759 | <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span> |
86756 | 86760 | <span class="w"> </span><span class="p">}</span> |
86757 | | -<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">count</span><span class="p">[</span><span class="nx">carType</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">]</span><span class="o">--</span><span class="p">;</span> |
| 86761 | +<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">carType</span><span class="p">]</span><span class="o">--</span><span class="p">;</span> |
86758 | 86762 | <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span> |
86759 | 86763 | <span class="w"> </span><span class="p">}</span> |
86760 | 86764 | <span class="p">}</span> |
@@ -86786,31 +86790,23 @@ <h3 id="solution-1">Solution 1</h3> |
86786 | 86790 | <span class="normal">17</span> |
86787 | 86791 | <span class="normal">18</span> |
86788 | 86792 | <span class="normal">19</span> |
86789 | | -<span class="normal">20</span> |
86790 | | -<span class="normal">21</span> |
86791 | | -<span class="normal">22</span> |
86792 | | -<span class="normal">23</span> |
86793 | | -<span class="normal">24</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">struct</span><span class="w"> </span><span class="nc">ParkingSystem</span><span class="w"> </span><span class="p">{</span> |
86794 | | -<span class="w"> </span><span class="n">count</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="kt">i32</span><span class="p">;</span><span class="w"> </span><span class="mi">3</span><span class="p">],</span> |
| 86793 | +<span class="normal">20</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">struct</span><span class="w"> </span><span class="nc">ParkingSystem</span><span class="w"> </span><span class="p">{</span> |
| 86794 | +<span class="w"> </span><span class="n">cnt</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="kt">i32</span><span class="p">;</span><span class="w"> </span><span class="mi">4</span><span class="p">]</span> |
86795 | 86795 | <span class="p">}</span> |
86796 | 86796 |
|
86797 | | -<span class="sd">/**</span> |
86798 | | -<span class="sd"> * `&self` means the method takes an immutable reference.</span> |
86799 | | -<span class="sd"> * If you need a mutable reference, change it to `&mut self` instead.</span> |
86800 | | -<span class="sd"> */</span> |
86801 | 86797 | <span class="k">impl</span><span class="w"> </span><span class="n">ParkingSystem</span><span class="w"> </span><span class="p">{</span> |
| 86798 | + |
86802 | 86799 | <span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">new</span><span class="p">(</span><span class="n">big</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="n">medium</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="n">small</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="nc">Self</span><span class="w"> </span><span class="p">{</span> |
86803 | | -<span class="w"> </span><span class="bp">Self</span><span class="w"> </span><span class="p">{</span> |
86804 | | -<span class="w"> </span><span class="n">count</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="n">big</span><span class="p">,</span><span class="w"> </span><span class="n">medium</span><span class="p">,</span><span class="w"> </span><span class="n">small</span><span class="p">],</span> |
| 86800 | +<span class="w"> </span><span class="n">ParkingSystem</span><span class="w"> </span><span class="p">{</span> |
| 86801 | +<span class="w"> </span><span class="n">cnt</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">big</span><span class="p">,</span><span class="w"> </span><span class="n">medium</span><span class="p">,</span><span class="w"> </span><span class="n">small</span><span class="p">],</span> |
86805 | 86802 | <span class="w"> </span><span class="p">}</span> |
86806 | 86803 | <span class="w"> </span><span class="p">}</span> |
86807 | 86804 |
|
86808 | 86805 | <span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">add_car</span><span class="p">(</span><span class="o">&</span><span class="k">mut</span><span class="w"> </span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">car_type</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="p">{</span> |
86809 | | -<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">car_type</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">usize</span><span class="p">;</span> |
86810 | | -<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="bp">self</span><span class="p">.</span><span class="n">count</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span> |
| 86806 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="bp">self</span><span class="p">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">car_type</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">usize</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span> |
86811 | 86807 | <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span> |
86812 | 86808 | <span class="w"> </span><span class="p">}</span> |
86813 | | -<span class="w"> </span><span class="bp">self</span><span class="p">.</span><span class="n">count</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> |
| 86809 | +<span class="w"> </span><span class="bp">self</span><span class="p">.</span><span class="n">cnt</span><span class="p">[</span><span class="n">car_type</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">usize</span><span class="p">]</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> |
86814 | 86810 | <span class="w"> </span><span class="kc">true</span> |
86815 | 86811 | <span class="w"> </span><span class="p">}</span> |
86816 | 86812 | <span class="p">}</span> |
|
0 commit comments