Skip to content

Commit a1a3b3a

Browse files
committed
deploy: 0ae1f13
1 parent c91f63d commit a1a3b3a

File tree

8 files changed

+1056
-222
lines changed

8 files changed

+1056
-222
lines changed

en/lc/240/index.html

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11834,18 +11834,18 @@
1183411834
<ul class="md-nav__list">
1183511835

1183611836
<li class="md-nav__item">
11837-
<a href="#solution-1" class="md-nav__link">
11837+
<a href="#solution-1-binary-search" class="md-nav__link">
1183811838
<span class="md-ellipsis">
11839-
Solution 1
11839+
Solution 1: Binary Search
1184011840
</span>
1184111841
</a>
1184211842

1184311843
</li>
1184411844

1184511845
<li class="md-nav__item">
11846-
<a href="#solution-2" class="md-nav__link">
11846+
<a href="#solution-2-search-from-the-bottom-left-or-top-right" class="md-nav__link">
1184711847
<span class="md-ellipsis">
11848-
Solution 2
11848+
Solution 2: Search from the Bottom Left or Top Right
1184911849
</span>
1185011850
</a>
1185111851

@@ -75342,7 +75342,10 @@ <h2 id="description">Description</h2>
7534275342
</ul>
7534375343

7534475344
<h2 id="solutions">Solutions</h2>
75345-
<h3 id="solution-1">Solution 1</h3>
75345+
<h3 id="solution-1-binary-search">Solution 1: Binary Search</h3>
75346+
<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>
75347+
<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>
75348+
<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>
7534675349
<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>
7534775350
<div class="tabbed-content">
7534875351
<div class="tabbed-block">
@@ -75597,7 +75600,15 @@ <h3 id="solution-1">Solution 1</h3>
7559775600
</div>
7559875601
</div>
7559975602
</div>
75600-
<h3 id="solution-2">Solution 2</h3>
75603+
<h3 id="solution-2-search-from-the-bottom-left-or-top-right">Solution 2: Search from the Bottom Left or Top Right</h3>
75604+
<p>Here, we start searching from the bottom left corner and move towards the top right direction, comparing the current element <code>matrix[i][j]</code> with <code>target</code>:</p>
75605+
<ul>
75606+
<li>If $\text{matrix}[i][j] = \text{target}$, it means the target value has been found, and we directly return <code>true</code>.</li>
75607+
<li>If $\text{matrix}[i][j] &gt; \text{target}$, it means all elements in this column from the current position upwards are greater than <code>target</code>, so we should move the $i$ pointer upwards, i.e., $i \leftarrow i - 1$.</li>
75608+
<li>If $\text{matrix}[i][j] &lt; \text{target}$, it means all elements in this row from the current position to the right are less than <code>target</code>, so we should move the $j$ pointer to the right, i.e., $j \leftarrow j + 1$.</li>
75609+
</ul>
75610+
<p>If the search ends and the <code>target</code> is still not found, return <code>false</code>.</p>
75611+
<p>The time complexity is $O(m + n)$, where $m$ and $n$ are the number of rows and columns in the matrix, respectively. The space complexity is $O(1)$.</p>
7560175612
<div class="tabbed-set tabbed-alternate" data-tabs="2:6"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><input id="__tabbed_2_3" name="__tabbed_2" type="radio" /><input id="__tabbed_2_4" name="__tabbed_2" type="radio" /><input id="__tabbed_2_5" name="__tabbed_2" type="radio" /><input id="__tabbed_2_6" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label><label for="__tabbed_2_2">Java</label><label for="__tabbed_2_3">C++</label><label for="__tabbed_2_4">Go</label><label for="__tabbed_2_5">TypeScript</label><label for="__tabbed_2_6">C#</label></div>
7560275613
<div class="tabbed-content">
7560375614
<div class="tabbed-block">
@@ -75747,16 +75758,14 @@ <h3 id="solution-2">Solution 2</h3>
7574775758
<span class="normal">12</span>
7574875759
<span class="normal">13</span>
7574975760
<span class="normal">14</span>
75750-
<span class="normal">15</span>
75751-
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">searchMatrix</span><span class="p">(</span><span class="nx">matrix</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">target</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>
75752-
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">matrix</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span>
75753-
<span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">matrix</span><span class="p">[</span><span class="mf">0</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span>
75754-
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">m</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">,</span>
75755-
<span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
75761+
<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">searchMatrix</span><span class="p">(</span><span class="nx">matrix</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">target</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>
75762+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">m</span><span class="p">,</span><span class="w"> </span><span class="nx">n</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="nx">matrix</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span><span class="w"> </span><span class="nx">matrix</span><span class="p">[</span><span class="mf">0</span><span class="p">].</span><span class="nx">length</span><span class="p">];</span>
75763+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">[</span><span class="nx">i</span><span class="p">,</span><span class="w"> </span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="nx">m</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="mf">0</span><span class="p">];</span>
7575675764
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mf">0</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
75757-
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">cur</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">matrix</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">];</span>
75758-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">cur</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nx">target</span><span class="p">)</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span>
75759-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">cur</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">target</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
75765+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">matrix</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">target</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
75766+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span>
75767+
<span class="w"> </span><span class="p">}</span>
75768+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">matrix</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">target</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
7576075769
<span class="w"> </span><span class="o">--</span><span class="nx">i</span><span class="p">;</span>
7576175770
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
7576275771
<span class="w"> </span><span class="o">++</span><span class="nx">j</span><span class="p">;</span>

0 commit comments

Comments
 (0)