@@ -75331,7 +75331,7 @@ <h3 id="solution-1-binary-search">Solution 1: Binary Search</h3>
75331
75331
<p>Since all elements in each row are sorted in ascending order, we can use binary search to find the first element that is greater than or equal to <code>target</code> for each row, and then check if this element is equal to <code>target</code>. If it equals <code>target</code>, it means the target value has been found, and we directly return <code>true</code>. If it does not equal <code>target</code>, it means all elements in this row are less than <code>target</code>, and we should continue to search the next row.</p>
75332
75332
<p>If all rows have been searched and the target value has not been found, it means the target value does not exist, so we return <code>false</code>.</p>
75333
75333
<p>The time complexity is $O(m \times \log n)$, where $m$ and $n$ are the number of rows and columns in the matrix, respectively. The space complexity is $O(1)$.</p>
75334
- <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">JavaScript</label><label for="__tabbed_1_8">C#</label></div>
75334
+ <div class="tabbed-set tabbed-alternate" data-tabs="1:9 "><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" /><input id="__tabbed_1_9" 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">JavaScript</label><label for="__tabbed_1_8">C#</label><label for="__tabbed_1_9">Swift </label></div>
75335
75335
<div class="tabbed-content">
75336
75336
<div class="tabbed-block">
75337
75337
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -75583,6 +75583,64 @@ <h3 id="solution-1-binary-search">Solution 1: Binary Search</h3>
75583
75583
<span class="p">}</span>
75584
75584
</code></pre></div></td></tr></table></div>
75585
75585
</div>
75586
+ <div class="tabbed-block">
75587
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75588
+ <span class="normal"> 2</span>
75589
+ <span class="normal"> 3</span>
75590
+ <span class="normal"> 4</span>
75591
+ <span class="normal"> 5</span>
75592
+ <span class="normal"> 6</span>
75593
+ <span class="normal"> 7</span>
75594
+ <span class="normal"> 8</span>
75595
+ <span class="normal"> 9</span>
75596
+ <span class="normal">10</span>
75597
+ <span class="normal">11</span>
75598
+ <span class="normal">12</span>
75599
+ <span class="normal">13</span>
75600
+ <span class="normal">14</span>
75601
+ <span class="normal">15</span>
75602
+ <span class="normal">16</span>
75603
+ <span class="normal">17</span>
75604
+ <span class="normal">18</span>
75605
+ <span class="normal">19</span>
75606
+ <span class="normal">20</span>
75607
+ <span class="normal">21</span>
75608
+ <span class="normal">22</span>
75609
+ <span class="normal">23</span>
75610
+ <span class="normal">24</span>
75611
+ <span class="normal">25</span>
75612
+ <span class="normal">26</span>
75613
+ <span class="normal">27</span>
75614
+ <span class="normal">28</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
75615
+ <span class="kd">func</span> <span class="nf">searchMatrix</span><span class="p">(</span><span class="kc">_</span> <span class="n">matrix</span><span class="p">:</span> <span class="p">[[</span><span class="nb">Int</span><span class="p">]],</span> <span class="kc">_</span> <span class="n">target</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Bool</span> <span class="p">{</span>
75616
+ <span class="k">for</span> <span class="n">row</span> <span class="k">in</span> <span class="n">matrix</span> <span class="p">{</span>
75617
+ <span class="k">if</span> <span class="n">binarySearch</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span> <span class="p">{</span>
75618
+ <span class="k">return</span> <span class="kc">true</span>
75619
+ <span class="p">}</span>
75620
+ <span class="p">}</span>
75621
+ <span class="k">return</span> <span class="kc">false</span>
75622
+ <span class="p">}</span>
75623
+
75624
+ <span class="kd">private</span> <span class="kd">func</span> <span class="nf">binarySearch</span><span class="p">(</span><span class="kc">_</span> <span class="n">array</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">target</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Bool</span> <span class="p">{</span>
75625
+ <span class="kd">var</span> <span class="nv">left</span> <span class="p">=</span> <span class="mi">0</span>
75626
+ <span class="kd">var</span> <span class="nv">right</span> <span class="p">=</span> <span class="n">array</span><span class="p">.</span><span class="bp">count</span> <span class="o">-</span> <span class="mi">1</span>
75627
+
75628
+ <span class="k">while</span> <span class="kr">left</span> <span class="o"><=</span> <span class="kr">right</span> <span class="p">{</span>
75629
+ <span class="kd">let</span> <span class="nv">mid</span> <span class="p">=</span> <span class="kr">left</span> <span class="o">+</span> <span class="p">(</span><span class="kr">right</span> <span class="o">-</span> <span class="kr">left</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
75630
+ <span class="k">if</span> <span class="n">array</span><span class="p">[</span><span class="n">mid</span><span class="p">]</span> <span class="p">==</span> <span class="n">target</span> <span class="p">{</span>
75631
+ <span class="k">return</span> <span class="kc">true</span>
75632
+ <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="n">array</span><span class="p">[</span><span class="n">mid</span><span class="p">]</span> <span class="o"><</span> <span class="n">target</span> <span class="p">{</span>
75633
+ <span class="kr">left</span> <span class="p">=</span> <span class="n">mid</span> <span class="o">+</span> <span class="mi">1</span>
75634
+ <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
75635
+ <span class="kr">right</span> <span class="p">=</span> <span class="n">mid</span> <span class="o">-</span> <span class="mi">1</span>
75636
+ <span class="p">}</span>
75637
+ <span class="p">}</span>
75638
+
75639
+ <span class="k">return</span> <span class="kc">false</span>
75640
+ <span class="p">}</span>
75641
+ <span class="p">}</span>
75642
+ </code></pre></div></td></tr></table></div>
75643
+ </div>
75586
75644
</div>
75587
75645
</div>
75588
75646
<h3 id="solution-2-search-from-the-bottom-left-or-top-right">Solution 2: Search from the Bottom Left or Top Right</h3>
@@ -75861,6 +75919,11 @@ <h3 id="solution-2-search-from-the-bottom-left-or-top-right">Solution 2: Search
75861
75919
75862
75920
<nav>
75863
75921
75922
+ <a href="https://github.com/klever34" class="md-author" title="@klever34">
75923
+
75924
+ <img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
75925
+ </a>
75926
+
75864
75927
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
75865
75928
75866
75929
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments