13065
13065
<ul class="md-nav__list">
13066
13066
13067
13067
<li class="md-nav__item">
13068
- <a href="#solution-1" class="md-nav__link">
13068
+ <a href="#solution-1-sorting " class="md-nav__link">
13069
13069
<span class="md-ellipsis">
13070
- Solution 1
13070
+ Solution 1: Sorting
13071
13071
</span>
13072
13072
</a>
13073
13073
@@ -87141,7 +87141,10 @@ <h2 id="description">Description</h2>
87141
87141
<h2 id="solutions">Solutions</h2>
87142
87142
<!-- solution:start -->
87143
87143
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>
87145
87148
<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>
87146
87149
<div class="tabbed-content">
87147
87150
<div class="tabbed-block">
@@ -87165,15 +87168,11 @@ <h3 id="solution-1">Solution 1</h3>
87165
87168
<span class="normal"> 8</span>
87166
87169
<span class="normal"> 9</span>
87167
87170
<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>
87171
87172
<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>
87172
87173
<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>
87173
87174
<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>
87177
87176
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span>
87178
87177
<span class="w"> </span><span class="p">}</span>
87179
87178
<span class="w"> </span><span class="p">}</span>
@@ -87199,11 +87198,11 @@ <h3 id="solution-1">Solution 1</h3>
87199
87198
<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>
87200
87199
<span class="k">public</span><span class="o">:</span>
87201
87200
<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>
87203
87202
<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>
87204
87203
<span class="w"> </span><span class="p">});</span>
87205
87204
<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>
87207
87206
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span>
87208
87207
<span class="w"> </span><span class="p">}</span>
87209
87208
<span class="w"> </span><span class="p">}</span>
@@ -87267,52 +87266,14 @@ <h3 id="solution-1">Solution 1</h3>
87267
87266
<span class="normal"> 8</span>
87268
87267
<span class="normal"> 9</span>
87269
87268
<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>
87311
87274
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span>
87312
87275
<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>
87314
87276
<span class="w"> </span><span class="p">}</span>
87315
-
87316
87277
<span class="w"> </span><span class="kc">true</span>
87317
87278
<span class="w"> </span><span class="p">}</span>
87318
87279
<span class="p">}</span>
0 commit comments