@@ -86204,10 +86204,10 @@ <h2 id="solutions">Solutions</h2>
8620486204<!-- solution:start -->
8620586205
8620686206<h3 id="solution-1-array-simulation">Solution 1: Array + Simulation</h3>
86207- <p>Observing the data range of the problem , the maximum number of the ball does not exceed <span class="arithmatex">\(10^5\)</span>, so the maximum value of the sum of each digit of the number is less than <span class="arithmatex">\(50\)</span>. Therefore, we can directly create an array <span class="arithmatex">\(cnt\)</span> with a length of <span class="arithmatex">\(50\)</span> to count the number of each digit sum of each number .</p>
86208- <p>The answer is the maximum value in the array <span class="arithmatex">\(cnt\)</span>.</p>
86209- <p>The time complexity is <span class="arithmatex">\(O(n \times \log_{10}m)\)</span>. Here, <span class="arithmatex">\(n = highLimit - lowLimit + 1\)</span>, and <span class="arithmatex">\(m = highLimit\)</span>.</p>
86210- <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>
86207+ <p>Observing the problem's data range, the maximum number of balls does not exceed <span class="arithmatex">\(10^5\)</span>, so the maximum sum of the digits of each number is less than <span class="arithmatex">\(50\)</span>. Therefore, we can directly create an array <span class="arithmatex">\(\textit{ cnt} \)</span> of length <span class="arithmatex">\(50\)</span> to count the number of occurrences of each digit sum .</p>
86208+ <p>The answer is the maximum value in the array <span class="arithmatex">\(\textit{ cnt} \)</span>.</p>
86209+ <p>The time complexity is <span class="arithmatex">\(O(n \times \log_{10}m)\)</span>. Here, <span class="arithmatex">\(n = \textit{ highLimit} - \textit{ lowLimit} + 1\)</span>, and <span class="arithmatex">\(m = \textit{ highLimit} \)</span>.</p>
86210+ <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>
8621186211<div class="tabbed-content">
8621286212<div class="tabbed-block">
8621386213<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -86345,6 +86345,104 @@ <h3 id="solution-1-array-simulation">Solution 1: Array + Simulation</h3>
8634586345<span class="p">}</span>
8634686346</code></pre></div></td></tr></table></div>
8634786347</div>
86348+ <div class="tabbed-block">
86349+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86350+ <span class="normal"> 2</span>
86351+ <span class="normal"> 3</span>
86352+ <span class="normal"> 4</span>
86353+ <span class="normal"> 5</span>
86354+ <span class="normal"> 6</span>
86355+ <span class="normal"> 7</span>
86356+ <span class="normal"> 8</span>
86357+ <span class="normal"> 9</span>
86358+ <span class="normal">10</span>
86359+ <span class="normal">11</span>
86360+ <span class="normal">12</span>
86361+ <span class="normal">13</span>
86362+ <span class="normal">14</span>
86363+ <span class="normal">15</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>
86364+ <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">count_balls</span><span class="p">(</span><span class="n">low_limit</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">,</span><span class="w"> </span><span class="n">high_limit</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>
86365+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="fm">vec!</span><span class="p">[</span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="mi">50</span><span class="p">];</span>
86366+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">low_limit</span><span class="o">..=</span><span class="n">high_limit</span><span class="w"> </span><span class="p">{</span>
86367+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86368+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">;</span>
86369+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">n</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>
86370+ <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86371+ <span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86372+ <span class="w"> </span><span class="p">}</span>
86373+ <span class="w"> </span><span class="n">cnt</span><span class="p">[</span><span class="n">y</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">usize</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
86374+ <span class="w"> </span><span class="p">}</span>
86375+ <span class="w"> </span><span class="o">*</span><span class="n">cnt</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>
86376+ <span class="w"> </span><span class="p">}</span>
86377+ <span class="p">}</span>
86378+ </code></pre></div></td></tr></table></div>
86379+ </div>
86380+ <div class="tabbed-block">
86381+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86382+ <span class="normal"> 2</span>
86383+ <span class="normal"> 3</span>
86384+ <span class="normal"> 4</span>
86385+ <span class="normal"> 5</span>
86386+ <span class="normal"> 6</span>
86387+ <span class="normal"> 7</span>
86388+ <span class="normal"> 8</span>
86389+ <span class="normal"> 9</span>
86390+ <span class="normal">10</span>
86391+ <span class="normal">11</span>
86392+ <span class="normal">12</span>
86393+ <span class="normal">13</span>
86394+ <span class="normal">14</span>
86395+ <span class="normal">15</span>
86396+ <span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
86397+ <span class="cm"> * @param {number} lowLimit</span>
86398+ <span class="cm"> * @param {number} highLimit</span>
86399+ <span class="cm"> * @return {number}</span>
86400+ <span class="cm"> */</span>
86401+ <span class="kd">var</span><span class="w"> </span><span class="nx">countBalls</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">lowLimit</span><span class="p">,</span><span class="w"> </span><span class="nx">highLimit</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86402+ <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="mf">50</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
86403+ <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="nx">lowLimit</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">highLimit</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>
86404+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
86405+ <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">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span><span class="w"> </span><span class="nx">x</span><span class="p">;</span><span class="w"> </span><span class="nx">x</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">floor</span><span class="p">(</span><span class="nx">x</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">10</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
86406+ <span class="w"> </span><span class="nx">y</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mf">10</span><span class="p">;</span>
86407+ <span class="w"> </span><span class="p">}</span>
86408+ <span class="w"> </span><span class="o">++</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">y</span><span class="p">];</span>
86409+ <span class="w"> </span><span class="p">}</span>
86410+ <span class="w"> </span><span class="k">return</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">cnt</span><span class="p">);</span>
86411+ <span class="p">};</span>
86412+ </code></pre></div></td></tr></table></div>
86413+ </div>
86414+ <div class="tabbed-block">
86415+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86416+ <span class="normal"> 2</span>
86417+ <span class="normal"> 3</span>
86418+ <span class="normal"> 4</span>
86419+ <span class="normal"> 5</span>
86420+ <span class="normal"> 6</span>
86421+ <span class="normal"> 7</span>
86422+ <span class="normal"> 8</span>
86423+ <span class="normal"> 9</span>
86424+ <span class="normal">10</span>
86425+ <span class="normal">11</span>
86426+ <span class="normal">12</span>
86427+ <span class="normal">13</span>
86428+ <span class="normal">14</span>
86429+ <span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">public</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
86430+ <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">CountBalls</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">lowLimit</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">highLimit</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86431+ <span class="w"> </span><span class="kt">int</span><span class="p">[]</span><span class="w"> </span><span class="n">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="p">[</span><span class="mi">50</span><span class="p">];</span>
86432+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">lowLimit</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="n">highLimit</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86433+ <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86434+ <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">;</span>
86435+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86436+ <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86437+ <span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86438+ <span class="w"> </span><span class="p">}</span>
86439+ <span class="w"> </span><span class="n">cnt</span><span class="p">[</span><span class="n">y</span><span class="p">]</span><span class="o">++</span><span class="p">;</span>
86440+ <span class="w"> </span><span class="p">}</span>
86441+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">cnt</span><span class="p">.</span><span class="n">Max</span><span class="p">();</span>
86442+ <span class="w"> </span><span class="p">}</span>
86443+ <span class="p">}</span>
86444+ </code></pre></div></td></tr></table></div>
86445+ </div>
8634886446</div>
8634986447</div>
8635086448<!-- solution:end -->
0 commit comments