|
71038 | 71038 | <ul class="md-nav__list">
|
71039 | 71039 |
|
71040 | 71040 | <li class="md-nav__item">
|
71041 |
| - <a href="#solution-1" class="md-nav__link"> |
| 71041 | + <a href="#solution-1-enumeration" class="md-nav__link"> |
71042 | 71042 | <span class="md-ellipsis">
|
71043 |
| - Solution 1 |
| 71043 | + Solution 1: Enumeration |
71044 | 71044 | </span>
|
71045 | 71045 | </a>
|
71046 | 71046 |
|
@@ -73702,23 +73702,91 @@ <h2 id="description">Description</h2>
|
73702 | 73702 | </ul>
|
73703 | 73703 |
|
73704 | 73704 | <h2 id="solutions">Solutions</h2>
|
73705 |
| -<h3 id="solution-1">Solution 1</h3> |
73706 |
| -<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> |
| 73705 | +<h3 id="solution-1-enumeration">Solution 1: Enumeration</h3> |
| 73706 | +<p>We can enumerate the powers of 2, and then call the <code>commonSetBits</code> method. If the return value is greater than 0, it means that the corresponding bit in the binary representation of <code>n</code> is 1.</p> |
| 73707 | +<p>The time complexity is $O(\log n)$, where $n \le 2^{30}$ in this problem. The space complexity is $O(1)$.</p> |
| 73708 | +<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> |
73707 | 73709 | <div class="tabbed-content">
|
73708 | 73710 | <div class="tabbed-block">
|
73709 |
| -<div class="highlight"><pre><span></span><code> |
| 73711 | +<div class="highlight"><pre><span></span><code><span class="c1"># Definition of commonSetBits API.</span> |
| 73712 | +<span class="c1"># def commonSetBits(num: int) -> int:</span> |
| 73713 | + |
| 73714 | + |
| 73715 | +<span class="k">class</span> <span class="nc">Solution</span><span class="p">:</span> |
| 73716 | + <span class="k">def</span> <span class="nf">findNumber</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> |
| 73717 | + <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="mi">1</span> <span class="o"><<</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">32</span><span class="p">)</span> <span class="k">if</span> <span class="n">commonSetBits</span><span class="p">(</span><span class="mi">1</span> <span class="o"><<</span> <span class="n">i</span><span class="p">))</span> |
| 73718 | +</code></pre></div> |
| 73719 | +</div> |
| 73720 | +<div class="tabbed-block"> |
| 73721 | +<div class="highlight"><pre><span></span><code><span class="cm">/**</span> |
| 73722 | +<span class="cm"> * Definition of commonSetBits API (defined in the parent class Problem).</span> |
| 73723 | +<span class="cm"> * int commonSetBits(int num);</span> |
| 73724 | +<span class="cm"> */</span> |
| 73725 | + |
| 73726 | +<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Problem</span><span class="w"> </span><span class="p">{</span> |
| 73727 | +<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">findNumber</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> |
| 73728 | +<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="mi">0</span><span class="p">;</span> |
| 73729 | +<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">i</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="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">32</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 73730 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">commonSetBits</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">i</span><span class="p">)</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> |
| 73731 | +<span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">i</span><span class="p">;</span> |
| 73732 | +<span class="w"> </span><span class="p">}</span> |
| 73733 | +<span class="w"> </span><span class="p">}</span> |
| 73734 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">n</span><span class="p">;</span> |
| 73735 | +<span class="w"> </span><span class="p">}</span> |
| 73736 | +<span class="p">}</span> |
73710 | 73737 | </code></pre></div>
|
73711 | 73738 | </div>
|
73712 | 73739 | <div class="tabbed-block">
|
73713 |
| -<div class="highlight"><pre><span></span><code> |
| 73740 | +<div class="highlight"><pre><span></span><code><span class="cm">/**</span> |
| 73741 | +<span class="cm"> * Definition of commonSetBits API.</span> |
| 73742 | +<span class="cm"> * int commonSetBits(int num);</span> |
| 73743 | +<span class="cm"> */</span> |
| 73744 | + |
| 73745 | +<span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span> |
| 73746 | +<span class="k">public</span><span class="o">:</span> |
| 73747 | +<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">findNumber</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> |
| 73748 | +<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="mi">0</span><span class="p">;</span> |
| 73749 | +<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">i</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="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">32</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 73750 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">commonSetBits</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">i</span><span class="p">))</span><span class="w"> </span><span class="p">{</span> |
| 73751 | +<span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">i</span><span class="p">;</span> |
| 73752 | +<span class="w"> </span><span class="p">}</span> |
| 73753 | +<span class="w"> </span><span class="p">}</span> |
| 73754 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">n</span><span class="p">;</span> |
| 73755 | +<span class="w"> </span><span class="p">}</span> |
| 73756 | +<span class="p">};</span> |
73714 | 73757 | </code></pre></div>
|
73715 | 73758 | </div>
|
73716 | 73759 | <div class="tabbed-block">
|
73717 |
| -<div class="highlight"><pre><span></span><code> |
| 73760 | +<div class="highlight"><pre><span></span><code><span class="cm">/**</span> |
| 73761 | +<span class="cm"> * Definition of commonSetBits API.</span> |
| 73762 | +<span class="cm"> * func commonSetBits(num int) int;</span> |
| 73763 | +<span class="cm"> */</span> |
| 73764 | + |
| 73765 | +<span class="kd">func</span><span class="w"> </span><span class="nx">findNumber</span><span class="p">()</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 73766 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nx">i</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="nx">i</span><span class="w"> </span><span class="p"><</span><span class="w"> </span><span class="mi">32</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="w"> </span><span class="p">{</span> |
| 73767 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">commonSetBits</span><span class="p">(</span><span class="mi">1</span><span class="o"><<</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span> |
| 73768 | +<span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="nx">i</span> |
| 73769 | +<span class="w"> </span><span class="p">}</span> |
| 73770 | +<span class="w"> </span><span class="p">}</span> |
| 73771 | +<span class="w"> </span><span class="k">return</span> |
| 73772 | +<span class="p">}</span> |
73718 | 73773 | </code></pre></div>
|
73719 | 73774 | </div>
|
73720 | 73775 | <div class="tabbed-block">
|
73721 |
| -<div class="highlight"><pre><span></span><code> |
| 73776 | +<div class="highlight"><pre><span></span><code><span class="cm">/**</span> |
| 73777 | +<span class="cm"> * Definition of commonSetBits API.</span> |
| 73778 | +<span class="cm"> * var commonSetBits = function(num: number): number {}</span> |
| 73779 | +<span class="cm"> */</span> |
| 73780 | + |
| 73781 | +<span class="kd">function</span><span class="w"> </span><span class="nx">findNumber</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> |
| 73782 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span> |
| 73783 | +<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="mf">32</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> |
| 73784 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">commonSetBits</span><span class="p">(</span><span class="mf">1</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="p">{</span> |
| 73785 | +<span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="mf">1</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span> |
| 73786 | +<span class="w"> </span><span class="p">}</span> |
| 73787 | +<span class="w"> </span><span class="p">}</span> |
| 73788 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span> |
| 73789 | +<span class="p">}</span> |
73722 | 73790 | </code></pre></div>
|
73723 | 73791 | </div>
|
73724 | 73792 | </div>
|
|
0 commit comments