|
29283 | 29283 | <ul class="md-nav__list"> |
29284 | 29284 |
|
29285 | 29285 | <li class="md-nav__item"> |
29286 | | - <a href="#solution-1" class="md-nav__link"> |
| 29286 | + <a href="#solution-1-reverse-calculation" class="md-nav__link"> |
29287 | 29287 | <span class="md-ellipsis"> |
29288 | | - Solution 1 |
| 29288 | + Solution 1: Reverse Calculation |
29289 | 29289 | </span> |
29290 | 29290 | </a> |
29291 | 29291 |
|
@@ -86792,8 +86792,10 @@ <h2 id="description">Description</h2> |
86792 | 86792 | <h2 id="solutions">Solutions</h2> |
86793 | 86793 | <!-- solution:start --> |
86794 | 86794 |
|
86795 | | -<h3 id="solution-1">Solution 1</h3> |
86796 | | -<div class="tabbed-set tabbed-alternate" data-tabs="1:4"><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" /><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></div> |
| 86795 | +<h3 id="solution-1-reverse-calculation">Solution 1: Reverse Calculation</h3> |
| 86796 | +<p>We can use a reverse calculation method, starting from <span class="arithmatex">\(\textit{target}\)</span>. If <span class="arithmatex">\(\textit{target}\)</span> is odd, then <span class="arithmatex">\(\textit{target} = \textit{target} + 1\)</span>, otherwise <span class="arithmatex">\(\textit{target} = \textit{target} / 2\)</span>. We accumulate the number of operations until <span class="arithmatex">\(\textit{target} \leq \textit{startValue}\)</span>. The final result is the number of operations plus <span class="arithmatex">\(\textit{startValue} - \textit{target}\)</span>.</p> |
| 86797 | +<p>The time complexity is <span class="arithmatex">\(O(\log n)\)</span>, where <span class="arithmatex">\(n\)</span> is <span class="arithmatex">\(\textit{target}\)</span>. The space complexity is <span class="arithmatex">\(O(1)\)</span>.</p> |
| 86798 | +<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> |
86797 | 86799 | <div class="tabbed-content"> |
86798 | 86800 | <div class="tabbed-block"> |
86799 | 86801 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
@@ -86911,6 +86913,32 @@ <h3 id="solution-1">Solution 1</h3> |
86911 | 86913 | <span class="p">}</span> |
86912 | 86914 | </code></pre></div></td></tr></table></div> |
86913 | 86915 | </div> |
| 86916 | +<div class="tabbed-block"> |
| 86917 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 86918 | +<span class="normal"> 2</span> |
| 86919 | +<span class="normal"> 3</span> |
| 86920 | +<span class="normal"> 4</span> |
| 86921 | +<span class="normal"> 5</span> |
| 86922 | +<span class="normal"> 6</span> |
| 86923 | +<span class="normal"> 7</span> |
| 86924 | +<span class="normal"> 8</span> |
| 86925 | +<span class="normal"> 9</span> |
| 86926 | +<span class="normal">10</span> |
| 86927 | +<span class="normal">11</span> |
| 86928 | +<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">brokenCalc</span><span class="p">(</span><span class="nx">startValue</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">number</span><span class="w"> </span><span class="p">{</span> |
| 86929 | +<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> |
| 86930 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(;</span><span class="w"> </span><span class="nx">startValue</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="o">++</span><span class="nx">ans</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 86931 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">target</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> |
| 86932 | +<span class="w"> </span><span class="o">++</span><span class="nx">target</span><span class="p">;</span> |
| 86933 | +<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> |
| 86934 | +<span class="w"> </span><span class="nx">target</span><span class="w"> </span><span class="o">>>=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span> |
| 86935 | +<span class="w"> </span><span class="p">}</span> |
| 86936 | +<span class="w"> </span><span class="p">}</span> |
| 86937 | +<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">startValue</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">target</span><span class="p">;</span> |
| 86938 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span> |
| 86939 | +<span class="p">}</span> |
| 86940 | +</code></pre></div></td></tr></table></div> |
| 86941 | +</div> |
86914 | 86942 | </div> |
86915 | 86943 | </div> |
86916 | 86944 | <!-- solution:end --> |
|
0 commit comments