|
53378 | 53378 | <ul class="md-nav__list"> |
53379 | 53379 |
|
53380 | 53380 | <li class="md-nav__item"> |
53381 | | - <a href="#solution-1" class="md-nav__link"> |
| 53381 | + <a href="#solution-1-traversal-and-counting" class="md-nav__link"> |
53382 | 53382 | <span class="md-ellipsis"> |
53383 | | - Solution 1 |
| 53383 | + Solution 1: Traversal and Counting |
53384 | 53384 | </span> |
53385 | 53385 | </a> |
53386 | 53386 |
|
@@ -82151,8 +82151,12 @@ <h2 id="description">Description</h2> |
82151 | 82151 | <h2 id="solutions">Solutions</h2> |
82152 | 82152 | <!-- solution:start --> |
82153 | 82153 |
|
82154 | | -<h3 id="solution-1">Solution 1</h3> |
82155 | | -<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">PHP</label></div> |
| 82154 | +<h3 id="solution-1-traversal-and-counting">Solution 1: Traversal and Counting</h3> |
| 82155 | +<p>We use a hash table or an array $\textit{cnt}$ to record the number of occurrences of each $\textit{target}$, and use a variable $\textit{mx}$ to maintain the maximum number of occurrences of $\textit{target}$. Initially, $\textit{mx} = 0$.</p> |
| 82156 | +<p>Traverse the array $\textit{nums}$. If $\textit{nums}[i] = \textit{key}$, increment the count of $\textit{nums}[i + 1]$ in $\textit{cnt}[\textit{nums}[i + 1]]$. If $\textit{mx} \lt \textit{cnt}[\textit{nums}[i + 1]]$, update $\textit{mx} = \textit{cnt}[\textit{nums}[i + 1]]$ and update the answer $\textit{ans} = \textit{nums}[i + 1]$.</p> |
| 82157 | +<p>After the traversal, return the answer $\textit{ans}$.</p> |
| 82158 | +<p>The time complexity is $O(n)$, and the space complexity is $O(M)$. Here, $n$ and $M$ are the length of the array $\textit{nums}$ and the maximum value of the elements in the array $\textit{nums}$, respectively.</p> |
| 82159 | +<div class="tabbed-set tabbed-alternate" data-tabs="1:7"><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" /><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">JavaScript</label><label for="__tabbed_1_7">PHP</label></div> |
82156 | 82160 | <div class="tabbed-content"> |
82157 | 82161 | <div class="tabbed-block"> |
82158 | 82162 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
@@ -82287,11 +82291,9 @@ <h3 id="solution-1">Solution 1</h3> |
82287 | 82291 | <span class="normal">10</span> |
82288 | 82292 | <span class="normal">11</span> |
82289 | 82293 | <span class="normal">12</span> |
82290 | | -<span class="normal">13</span> |
82291 | | -<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">mostFrequent</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="w"> </span><span class="nx">key</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> |
82292 | | -<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">cnt</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="ow">new</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="mf">1001</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span> |
82293 | | -<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span> |
82294 | | -<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">mx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span> |
| 82294 | +<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">mostFrequent</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="w"> </span><span class="nx">key</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> |
| 82295 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">cnt</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="nb">Array</span><span class="p">(</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><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span> |
| 82296 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">[</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">mx</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">];</span> |
82295 | 82297 | <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="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="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
82296 | 82298 | <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">key</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
82297 | 82299 | <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">mx</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="o">++</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</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="p">{</span> |
@@ -82322,28 +82324,58 @@ <h3 id="solution-1">Solution 1</h3> |
82322 | 82324 | <span class="normal">15</span> |
82323 | 82325 | <span class="normal">16</span> |
82324 | 82326 | <span class="normal">17</span> |
82325 | | -<span class="normal">18</span> |
82326 | | -<span class="normal">19</span> |
82327 | | -<span class="normal">20</span> |
82328 | | -<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="x">class Solution {</span> |
82329 | | -<span class="x"> /**</span> |
82330 | | -<span class="x"> * @param Integer[] $nums</span> |
82331 | | -<span class="x"> * @param Integer $key</span> |
82332 | | -<span class="x"> * @return Integer</span> |
82333 | | -<span class="x"> */</span> |
| 82327 | +<span class="normal">18</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span> |
| 82328 | +<span class="cm"> * @param {number[]} nums</span> |
| 82329 | +<span class="cm"> * @param {number} key</span> |
| 82330 | +<span class="cm"> * @return {number}</span> |
| 82331 | +<span class="cm"> */</span> |
| 82332 | +<span class="kd">var</span><span class="w"> </span><span class="nx">mostFrequent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span><span class="w"> </span><span class="nx">key</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 82333 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</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><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span> |
| 82334 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">[</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">mx</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mf">0</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">];</span> |
| 82335 | +<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="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="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 82336 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="nx">key</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 82337 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">mx</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="o">++</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</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="p">{</span> |
| 82338 | +<span class="w"> </span><span class="nx">mx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">nums</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">]];</span> |
| 82339 | +<span class="w"> </span><span class="nx">ans</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="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">];</span> |
| 82340 | +<span class="w"> </span><span class="p">}</span> |
| 82341 | +<span class="w"> </span><span class="p">}</span> |
| 82342 | +<span class="w"> </span><span class="p">}</span> |
| 82343 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span> |
| 82344 | +<span class="p">};</span> |
| 82345 | +</code></pre></div></td></tr></table></div> |
| 82346 | +</div> |
| 82347 | +<div class="tabbed-block"> |
| 82348 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 82349 | +<span class="normal"> 2</span> |
| 82350 | +<span class="normal"> 3</span> |
| 82351 | +<span class="normal"> 4</span> |
| 82352 | +<span class="normal"> 5</span> |
| 82353 | +<span class="normal"> 6</span> |
| 82354 | +<span class="normal"> 7</span> |
| 82355 | +<span class="normal"> 8</span> |
| 82356 | +<span class="normal"> 9</span> |
| 82357 | +<span class="normal">10</span> |
| 82358 | +<span class="normal">11</span> |
| 82359 | +<span class="normal">12</span> |
| 82360 | +<span class="normal">13</span> |
| 82361 | +<span class="normal">14</span> |
| 82362 | +<span class="normal">15</span> |
| 82363 | +<span class="normal">16</span> |
| 82364 | +<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="x">class Solution {</span> |
82334 | 82365 | <span class="x"> function mostFrequent($nums, $key) {</span> |
82335 | | -<span class="x"> $max = $maxNum = 0;</span> |
82336 | | -<span class="x"> for ($i = 0; $i < count($nums) - 1; $i++) {</span> |
82337 | | -<span class="x"> if ($nums[$i] == $key) {</span> |
82338 | | -<span class="x"> $hashtable[$nums[$i + 1]] += 1;</span> |
82339 | | -<span class="x"> $tmp = $hashtable[$nums[$i + 1]];</span> |
82340 | | -<span class="x"> if ($tmp > $max) {</span> |
82341 | | -<span class="x"> $max = $tmp;</span> |
82342 | | -<span class="x"> $maxNum = $nums[$i + 1];</span> |
| 82366 | +<span class="x"> $cnt = array_fill(0, max($nums) + 1, 0);</span> |
| 82367 | +<span class="x"> $ans = 0;</span> |
| 82368 | +<span class="x"> $mx = 0;</span> |
| 82369 | +<span class="x"> for ($i = 0; $i < count($nums) - 1; ++$i) {</span> |
| 82370 | +<span class="x"> if ($nums[$i] === $key) {</span> |
| 82371 | +<span class="x"> $cnt[$nums[$i + 1]]++;</span> |
| 82372 | +<span class="x"> if ($mx < $cnt[$nums[$i + 1]]) {</span> |
| 82373 | +<span class="x"> $mx = $cnt[$nums[$i + 1]];</span> |
| 82374 | +<span class="x"> $ans = $nums[$i + 1];</span> |
82343 | 82375 | <span class="x"> }</span> |
82344 | 82376 | <span class="x"> }</span> |
82345 | 82377 | <span class="x"> }</span> |
82346 | | -<span class="x"> return $maxNum;</span> |
| 82378 | +<span class="x"> return $ans;</span> |
82347 | 82379 | <span class="x"> }</span> |
82348 | 82380 | <span class="x">}</span> |
82349 | 82381 | </code></pre></div></td></tr></table></div> |
|
0 commit comments