1306513065 <ul class="md-nav__list">
1306613066
1306713067 <li class="md-nav__item">
13068- <a href="#solution-1" class="md-nav__link">
13068+ <a href="#solution-1-sorting " class="md-nav__link">
1306913069 <span class="md-ellipsis">
13070- Solution 1
13070+ Solution 1: Sorting
1307113071 </span>
1307213072 </a>
1307313073
@@ -87141,7 +87141,10 @@ <h2 id="description">Description</h2>
8714187141<h2 id="solutions">Solutions</h2>
8714287142<!-- solution:start -->
8714387143
87144- <h3 id="solution-1">Solution 1</h3>
87144+ <h3 id="solution-1-sorting">Solution 1: Sorting</h3>
87145+ <p>We sort the meetings based on their start times, and then iterate through the sorted meetings. If the start time of the current meeting is less than the end time of the previous meeting, it indicates that there is an overlap between the two meetings, and we return <code>false</code>. Otherwise, we continue iterating.</p>
87146+ <p>If no overlap is found by the end of the iteration, we return <code>true</code>.</p>
87147+ <p>The time complexity is <span class="arithmatex">\(O(n \times \log n)\)</span>, and the space complexity is <span class="arithmatex">\(O(\log n)\)</span>, where <span class="arithmatex">\(n\)</span> is the number of meetings.</p>
8714587148<div class="tabbed-set tabbed-alternate" data-tabs="1:6"><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" /><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></div>
8714687149<div class="tabbed-content">
8714787150<div class="tabbed-block">
@@ -87165,15 +87168,11 @@ <h3 id="solution-1">Solution 1</h3>
8716587168<span class="normal"> 8</span>
8716687169<span class="normal"> 9</span>
8716787170<span class="normal">10</span>
87168- <span class="normal">11</span>
87169- <span class="normal">12</span>
87170- <span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
87171+ <span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
8717187172<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="nf">canAttendMeetings</span><span class="p">(</span><span class="kt">int</span><span class="o">[][]</span><span class="w"> </span><span class="n">intervals</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8717287173<span class="w"> </span><span class="n">Arrays</span><span class="p">.</span><span class="na">sort</span><span class="p">(</span><span class="n">intervals</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">a</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">b</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">);</span>
8717387174<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</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="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">intervals</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
87174- <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">intervals</span><span class="o">[</span><span class="n">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="o">]</span><span class="p">;</span>
87175- <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">intervals</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="p">;</span>
87176- <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">b</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
87175+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">intervals</span><span class="o">[</span><span class="n">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="o">][</span><span class="mi">1</span><span class="o">]</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">intervals</span><span class="o">[</span><span class="n">i</span><span class="o">][</span><span class="mi">0</span><span class="o">]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8717787176<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span>
8717887177<span class="w"> </span><span class="p">}</span>
8717987178<span class="w"> </span><span class="p">}</span>
@@ -87199,11 +87198,11 @@ <h3 id="solution-1">Solution 1</h3>
8719987198<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
8720087199<span class="k">public</span><span class="o">:</span>
8720187200<span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">canAttendMeetings</span><span class="p">(</span><span class="n">vector</span><span class="o"><</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">>>&</span><span class="w"> </span><span class="n">intervals</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
87202- <span class="w"> </span><span class="n">sort </span><span class="p">( </span><span class="n">intervals </span><span class="p">.</span><span class="n">begin</span><span class="p">(), </span><span class="w"> </span><span class=" n">intervals</span><span class="p">.</span><span class="n">end</span><span class="p">() ,</span><span class="w"> </span><span class="p">[](</span><span class="k">const</span><span class="w"> </span><span class="n">vector </span><span class="o"><</span><span class="kt">int</span><span class="o">>& amp;</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">vector </span><span class="o"><</span><span class="kt">int</span><span class="o">> &</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
87201+ <span class="w"> </span><span class="n">ranges </span><span class="o">:: </span><span class="n">sort </span><span class="p">( </span><span class="n">intervals</span><span class="p">,</span><span class="w"> </span><span class="p">[](</span><span class="k">const</span><span class="w"> </span><span class="k">auto </span><span class="o">&</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">auto </span><span class="o">&</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8720387202<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
8720487203<span class="w"> </span><span class="p">});</span>
8720587204<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</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="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">intervals</span><span class="p">.</span><span class="n">size</span><span class="p">();</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
87206- <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">intervals</span><span class="p">[</span><span class="n">i</span><span class="p">][ </span><span class="mi">0 </span><span class="p">] </span><span class="w"> </span><span class="o">< </span><span class="w"> </span><span class="n">intervals </span><span class="p">[ </span><span class="n">i </span><span class="w"> </span><span class="o">- </span><span class="w"> </span><span class="mi">1 </span><span class="p">][</span><span class="mi">1 </span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
87205+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">intervals</span><span class="p">[</span><span class="n">i</span><span class="w"> </span><span class="o">- </span><span class="w"> </span><span class="mi">1 </span><span class="p">][ </span><span class="mi">1 </span><span class="p">] </span><span class="w"> </span><span class="o">> </span><span class="w"> </span><span class="n">intervals </span><span class="p">[ </span><span class="n">i </span><span class="p">][</span><span class="mi">0 </span><span class="p">])</span><span class="w"> </span><span class="p">{</span>
8720787206<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span>
8720887207<span class="w"> </span><span class="p">}</span>
8720987208<span class="w"> </span><span class="p">}</span>
@@ -87267,52 +87266,14 @@ <h3 id="solution-1">Solution 1</h3>
8726787266<span class="normal"> 8</span>
8726887267<span class="normal"> 9</span>
8726987268<span class="normal">10</span>
87270- <span class="normal">11</span>
87271- <span class="normal">12</span>
87272- <span class="normal">13</span>
87273- <span class="normal">14</span>
87274- <span class="normal">15</span>
87275- <span class="normal">16</span>
87276- <span class="normal">17</span>
87277- <span class="normal">18</span>
87278- <span class="normal">19</span>
87279- <span class="normal">20</span>
87280- <span class="normal">21</span>
87281- <span class="normal">22</span>
87282- <span class="normal">23</span>
87283- <span class="normal">24</span>
87284- <span class="normal">25</span>
87285- <span class="normal">26</span>
87286- <span class="normal">27</span>
87287- <span class="normal">28</span>
87288- <span class="normal">29</span>
87289- <span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">impl</span><span class="w"> </span><span class="n">Solution</span><span class="w"> </span><span class="p">{</span>
87290- <span class="w"> </span><span class="cp">#[allow(dead_code)]</span>
87291- <span class="w"> </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">can_attend_meetings</span><span class="p">(</span><span class="n">intervals</span><span class="p">:</span><span class="w"> </span><span class="nb">Vec</span><span class="o"><</span><span class="nb">Vec</span><span class="o"><</span><span class="kt">i32</span><span class="o">>></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>
87292- <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">intervals</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
87293- <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span>
87294- <span class="w"> </span><span class="p">}</span>
87295-
87296- <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">intervals</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">intervals</span><span class="p">;</span>
87297-
87298- <span class="w"> </span><span class="c1">// Sort the intervals vector</span>
87299- <span class="w"> </span><span class="n">intervals</span><span class="p">.</span><span class="n">sort_by</span><span class="p">(</span><span class="o">|</span><span class="n">lhs</span><span class="p">,</span><span class="w"> </span><span class="n">rhs</span><span class="o">|</span><span class="w"> </span><span class="n">lhs</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="n">cmp</span><span class="p">(</span><span class="o">&</span><span class="n">rhs</span><span class="p">[</span><span class="mi">0</span><span class="p">]));</span>
87300-
87301- <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">end</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span>
87302-
87303- <span class="w"> </span><span class="c1">// Begin traverse</span>
87304- <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="o">&</span><span class="n">intervals</span><span class="w"> </span><span class="p">{</span>
87305- <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">end</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
87306- <span class="w"> </span><span class="c1">// This is the first pair</span>
87307- <span class="w"> </span><span class="n">end</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
87308- <span class="w"> </span><span class="k">continue</span><span class="p">;</span>
87309- <span class="w"> </span><span class="p">}</span>
87310- <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">end</span><span class="w"> </span><span class="p">{</span>
87269+ <span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">impl</span><span class="w"> </span><span class="n">Solution</span><span class="w"> </span><span class="p">{</span>
87270+ <span class="w"> </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">can_attend_meetings</span><span class="p">(</span><span class="k">mut</span><span class="w"> </span><span class="n">intervals</span><span class="p">:</span><span class="w"> </span><span class="nb">Vec</span><span class="o"><</span><span class="nb">Vec</span><span class="o"><</span><span class="kt">i32</span><span class="o">>></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>
87271+ <span class="w"> </span><span class="n">intervals</span><span class="p">.</span><span class="n">sort_by</span><span class="p">(</span><span class="o">|</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="o">|</span><span class="w"> </span><span class="n">a</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="n">cmp</span><span class="p">(</span><span class="o">&</span><span class="n">b</span><span class="p">[</span><span class="mi">0</span><span class="p">]));</span>
87272+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">1</span><span class="o">..</span><span class="n">intervals</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
87273+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">intervals</span><span class="p">[</span><span class="n">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">intervals</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="p">{</span>
8731187274<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span>
8731287275<span class="w"> </span><span class="p">}</span>
87313- <span class="w"> </span><span class="n">end</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">p</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
8731487276<span class="w"> </span><span class="p">}</span>
87315-
8731687277<span class="w"> </span><span class="kc">true</span>
8731787278<span class="w"> </span><span class="p">}</span>
8731887279<span class="p">}</span>
0 commit comments