|
36940 | 36940 | <ul class="md-nav__list">
|
36941 | 36941 |
|
36942 | 36942 | <li class="md-nav__item">
|
36943 |
| - <a href="#solution-1" class="md-nav__link"> |
| 36943 | + <a href="#solution-1-sorting" class="md-nav__link"> |
36944 | 36944 | <span class="md-ellipsis">
|
36945 |
| - Solution 1 |
| 36945 | + Solution 1: Sorting |
36946 | 36946 | </span>
|
36947 | 36947 | </a>
|
36948 | 36948 |
|
@@ -78089,8 +78089,16 @@ <h2 id="description">Description</h2>
|
78089 | 78089 | <h2 id="solutions">Solutions</h2>
|
78090 | 78090 | <!-- solution:start -->
|
78091 | 78091 |
|
78092 |
| -<h3 id="solution-1">Solution 1</h3> |
78093 |
| -<div class="tabbed-set tabbed-alternate" data-tabs="1:5"><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" /><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">C#</label></div> |
| 78092 | +<h3 id="solution-1-sorting">Solution 1: Sorting</h3> |
| 78093 | +<p>We observe that:</p> |
| 78094 | +<ul> |
| 78095 | +<li>The value of $i + j$ is the same for each diagonal;</li> |
| 78096 | +<li>The value of $i + j$ for the next diagonal is greater than that of the previous diagonal;</li> |
| 78097 | +<li>Within the same diagonal, the value of $i + j$ is the same, and the value of $j$ increases from small to large.</li> |
| 78098 | +</ul> |
| 78099 | +<p>Therefore, we store all numbers in the form of $(i, j, \textit{nums}[i][j])$ into $\textit{arr}$, and then sort according to the first two items. Finally, return the array composed of the values at index 2 of all elements in $\textit{arr}$.</p> |
| 78100 | +<p>The time complexity is $O(n \times \log n)$, where $n$ is the number of elements in the array $\textit{nums}$. The space complexity is $O(n)$.</p> |
| 78101 | +<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">C#</label></div> |
78094 | 78102 | <div class="tabbed-content">
|
78095 | 78103 | <div class="tabbed-block">
|
78096 | 78104 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
@@ -78230,6 +78238,28 @@ <h3 id="solution-1">Solution 1</h3>
|
78230 | 78238 | <span class="normal"> 7</span>
|
78231 | 78239 | <span class="normal"> 8</span>
|
78232 | 78240 | <span class="normal"> 9</span>
|
| 78241 | +<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">findDiagonalOrder</span><span class="p">(</span><span class="nx">nums</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">number</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span> |
| 78242 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">arr</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[][]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[];</span> |
| 78243 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</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="mf">0</span><span class="p">;</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">nums</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 78244 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><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><span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">j</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 78245 | +<span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">j</span><span class="p">,</span><span class="w"> </span><span class="nx">j</span><span class="p">,</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">]]);</span> |
| 78246 | +<span class="w"> </span><span class="p">}</span> |
| 78247 | +<span class="w"> </span><span class="p">}</span> |
| 78248 | +<span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="p">(</span><span class="nx">a</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">b</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="nx">a</span><span class="p">[</span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">[</span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="nx">a</span><span class="p">[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">[</span><span class="mf">0</span><span class="p">]));</span> |
| 78249 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">arr</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="nx">x</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="nx">x</span><span class="p">[</span><span class="mf">2</span><span class="p">]);</span> |
| 78250 | +<span class="p">}</span> |
| 78251 | +</code></pre></div></td></tr></table></div> |
| 78252 | +</div> |
| 78253 | +<div class="tabbed-block"> |
| 78254 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 78255 | +<span class="normal"> 2</span> |
| 78256 | +<span class="normal"> 3</span> |
| 78257 | +<span class="normal"> 4</span> |
| 78258 | +<span class="normal"> 5</span> |
| 78259 | +<span class="normal"> 6</span> |
| 78260 | +<span class="normal"> 7</span> |
| 78261 | +<span class="normal"> 8</span> |
| 78262 | +<span class="normal"> 9</span> |
78233 | 78263 | <span class="normal">10</span>
|
78234 | 78264 | <span class="normal">11</span>
|
78235 | 78265 | <span class="normal">12</span>
|
|
0 commit comments