|
48869 | 48869 | <ul class="md-nav__list">
|
48870 | 48870 |
|
48871 | 48871 | <li class="md-nav__item">
|
48872 |
| - <a href="#solution-1" class="md-nav__link"> |
| 48872 | + <a href="#solution-1-simulation" class="md-nav__link"> |
48873 | 48873 | <span class="md-ellipsis">
|
48874 |
| - Solution 1 |
| 48874 | + Solution 1: Simulation |
48875 | 48875 | </span>
|
48876 | 48876 | </a>
|
48877 | 48877 |
|
@@ -81259,8 +81259,10 @@ <h2 id="description">Description</h2>
|
81259 | 81259 | <h2 id="solutions">Solutions</h2>
|
81260 | 81260 | <!-- solution:start -->
|
81261 | 81261 |
|
81262 |
| -<h3 id="solution-1">Solution 1</h3> |
81263 |
| -<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">TypeScript</label></div> |
| 81262 | +<h3 id="solution-1-simulation">Solution 1: Simulation</h3> |
| 81263 | +<p>We can simulate according to the problem description. First, find the maximum and minimum values in the array $\textit{nums}$, then find the greatest common divisor of the maximum and minimum values.</p> |
| 81264 | +<p>The time complexity is $O(n)$, where $n$ is the length of the array $\textit{nums}$. The space complexity is $O(1)$.</p> |
| 81265 | +<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> |
81264 | 81266 | <div class="tabbed-content">
|
81265 | 81267 | <div class="tabbed-block">
|
81266 | 81268 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
@@ -81307,13 +81309,11 @@ <h3 id="solution-1">Solution 1</h3>
|
81307 | 81309 | <span class="normal">4</span>
|
81308 | 81310 | <span class="normal">5</span>
|
81309 | 81311 | <span class="normal">6</span>
|
81310 |
| -<span class="normal">7</span> |
81311 |
| -<span class="normal">8</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> |
| 81312 | +<span class="normal">7</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> |
81312 | 81313 | <span class="k">public</span><span class="o">:</span>
|
81313 | 81314 | <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">findGCD</span><span class="p">(</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">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
81314 |
| -<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">max_element</span><span class="p">(</span><span class="n">nums</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">end</span><span class="p">());</span> |
81315 |
| -<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">min_element</span><span class="p">(</span><span class="n">nums</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="n">end</span><span class="p">());</span> |
81316 |
| -<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">gcd</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> |
| 81315 | +<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="p">[</span><span class="n">min</span><span class="p">,</span><span class="w"> </span><span class="n">max</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ranges</span><span class="o">::</span><span class="n">minmax_element</span><span class="p">(</span><span class="n">nums</span><span class="p">);</span> |
| 81316 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">gcd</span><span class="p">(</span><span class="o">*</span><span class="n">min</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">max</span><span class="p">);</span> |
81317 | 81317 | <span class="w"> </span><span class="p">}</span>
|
81318 | 81318 | <span class="p">};</span>
|
81319 | 81319 | </code></pre></div></td></tr></table></div>
|
@@ -81354,25 +81354,51 @@ <h3 id="solution-1">Solution 1</h3>
|
81354 | 81354 | <span class="normal"> 9</span>
|
81355 | 81355 | <span class="normal">10</span>
|
81356 | 81356 | <span class="normal">11</span>
|
| 81357 | +<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">findGCD</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="w"> </span><span class="p">{</span> |
| 81358 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">min</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(...</span><span class="nx">nums</span><span class="p">);</span> |
| 81359 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">max</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(...</span><span class="nx">nums</span><span class="p">);</span> |
| 81360 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">gcd</span><span class="p">(</span><span class="nx">min</span><span class="p">,</span><span class="w"> </span><span class="nx">max</span><span class="p">);</span> |
| 81361 | +<span class="p">}</span> |
| 81362 | + |
| 81363 | +<span class="kd">function</span><span class="w"> </span><span class="nx">gcd</span><span class="p">(</span><span class="nx">a</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">b</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="w"> </span><span class="p">{</span> |
| 81364 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">b</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="p">{</span> |
| 81365 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">a</span><span class="p">;</span> |
| 81366 | +<span class="w"> </span><span class="p">}</span> |
| 81367 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">gcd</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span> |
| 81368 | +<span class="p">}</span> |
| 81369 | +</code></pre></div></td></tr></table></div> |
| 81370 | +</div> |
| 81371 | +<div class="tabbed-block"> |
| 81372 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 81373 | +<span class="normal"> 2</span> |
| 81374 | +<span class="normal"> 3</span> |
| 81375 | +<span class="normal"> 4</span> |
| 81376 | +<span class="normal"> 5</span> |
| 81377 | +<span class="normal"> 6</span> |
| 81378 | +<span class="normal"> 7</span> |
| 81379 | +<span class="normal"> 8</span> |
| 81380 | +<span class="normal"> 9</span> |
| 81381 | +<span class="normal">10</span> |
| 81382 | +<span class="normal">11</span> |
81357 | 81383 | <span class="normal">12</span>
|
81358 | 81384 | <span class="normal">13</span>
|
81359 | 81385 | <span class="normal">14</span>
|
81360 | 81386 | <span class="normal">15</span>
|
81361 |
| -<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">findGCD</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="w"> </span><span class="p">{</span> |
81362 |
| -<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span> |
81363 |
| -<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1000</span><span class="p">;</span> |
81364 |
| -<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">nums</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
81365 |
| -<span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">x</span><span class="p">);</span> |
81366 |
| -<span class="w"> </span><span class="nx">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="w"> </span><span class="nx">x</span><span class="p">);</span> |
| 81387 | +<span class="normal">16</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> |
| 81388 | +<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">find_gcd</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span><span class="w"> </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">i32</span><span class="w"> </span><span class="p">{</span> |
| 81389 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">min_val</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">nums</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">min</span><span class="p">().</span><span class="n">unwrap</span><span class="p">();</span> |
| 81390 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">max_val</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">nums</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">max</span><span class="p">().</span><span class="n">unwrap</span><span class="p">();</span> |
| 81391 | +<span class="w"> </span><span class="n">gcd</span><span class="p">(</span><span class="n">min_val</span><span class="p">,</span><span class="w"> </span><span class="n">max_val</span><span class="p">)</span> |
81367 | 81392 | <span class="w"> </span><span class="p">}</span>
|
81368 |
| -<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">gcd</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> |
81369 | 81393 | <span class="p">}</span>
|
81370 | 81394 |
|
81371 |
| -<span class="kd">function</span><span class="w"> </span><span class="nx">gcd</span><span class="p">(</span><span class="nx">a</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">b</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="w"> </span><span class="p">{</span> |
81372 |
| -<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">b</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="p">{</span> |
81373 |
| -<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">a</span><span class="p">;</span> |
| 81395 | +<span class="k">fn</span><span class="w"> </span><span class="nf">gcd</span><span class="p">(</span><span class="k">mut</span><span class="w"> </span><span class="n">a</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">b</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span> |
| 81396 | +<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span> |
| 81397 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">;</span> |
| 81398 | +<span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</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">b</span><span class="p">;</span> |
| 81399 | +<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">temp</span><span class="p">;</span> |
81374 | 81400 | <span class="w"> </span><span class="p">}</span>
|
81375 |
| -<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">gcd</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span> |
| 81401 | +<span class="w"> </span><span class="n">a</span> |
81376 | 81402 | <span class="p">}</span>
|
81377 | 81403 | </code></pre></div></td></tr></table></div>
|
81378 | 81404 | </div>
|
|
0 commit comments