Skip to content

Commit a062c9e

Browse files
committed
deploy: 25448d6
1 parent da71911 commit a062c9e

File tree

6 files changed

+328
-32
lines changed

6 files changed

+328
-32
lines changed

en/lc/3226/index.html

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74755,9 +74755,9 @@
7475574755
<ul class="md-nav__list">
7475674756

7475774757
<li class="md-nav__item">
74758-
<a href="#solution-1" class="md-nav__link">
74758+
<a href="#solution-1-bit-manipulation" class="md-nav__link">
7475974759
<span class="md-ellipsis">
74760-
Solution 1
74760+
Solution 1: Bit Manipulation
7476174761
</span>
7476274762
</a>
7476374763

@@ -77535,23 +77535,83 @@ <h2 id="description">Description</h2>
7753577535
<h2 id="solutions">Solutions</h2>
7753677536
<!-- solution:start -->
7753777537

77538-
<h3 id="solution-1">Solution 1</h3>
77539-
<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>
77538+
<h3 id="solution-1-bit-manipulation">Solution 1: Bit Manipulation</h3>
77539+
<p>If the bitwise AND result of $n$ and $k$ is not equal to $k$, it indicates that there exists at least one bit where $k$ is $1$ and the corresponding bit in $n$ is $0$. In this case, it is impossible to modify a bit in $n$ to make $n$ equal to $k$, and we return $-1$. Otherwise, we count the number of $1$s in the binary representation of $n \oplus k$.</p>
77540+
<p>The time complexity is $O(\log n)$, and the space complexity is $O(1)$.</p>
77541+
<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>
7754077542
<div class="tabbed-content">
7754177543
<div class="tabbed-block">
77542-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>
77544+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
77545+
<span class="normal">2</span>
77546+
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Solution</span><span class="p">:</span>
77547+
<span class="k">def</span> <span class="nf">minChanges</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">k</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
77548+
<span class="k">return</span> <span class="o">-</span><span class="mi">1</span> <span class="k">if</span> <span class="n">n</span> <span class="o">&amp;</span> <span class="n">k</span> <span class="o">!=</span> <span class="n">k</span> <span class="k">else</span> <span class="p">(</span><span class="n">n</span> <span class="o">^</span> <span class="n">k</span><span class="p">)</span><span class="o">.</span><span class="n">bit_count</span><span class="p">()</span>
7754377549
</code></pre></div></td></tr></table></div>
7754477550
</div>
7754577551
<div class="tabbed-block">
77546-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>
77552+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
77553+
<span class="normal">2</span>
77554+
<span class="normal">3</span>
77555+
<span class="normal">4</span>
77556+
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
77557+
<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">minChanges</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
77558+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">Integer</span><span class="p">.</span><span class="na">bitCount</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="n">k</span><span class="p">);</span>
77559+
<span class="w"> </span><span class="p">}</span>
77560+
<span class="p">}</span>
7754777561
</code></pre></div></td></tr></table></div>
7754877562
</div>
7754977563
<div class="tabbed-block">
77550-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>
77564+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
77565+
<span class="normal">2</span>
77566+
<span class="normal">3</span>
77567+
<span class="normal">4</span>
77568+
<span class="normal">5</span>
77569+
<span class="normal">6</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>
77570+
<span class="k">public</span><span class="o">:</span>
77571+
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">minChanges</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
77572+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">k</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">k</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">__builtin_popcount</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="n">k</span><span class="p">);</span>
77573+
<span class="w"> </span><span class="p">}</span>
77574+
<span class="p">};</span>
7755177575
</code></pre></div></td></tr></table></div>
7755277576
</div>
7755377577
<div class="tabbed-block">
77554-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code>
77578+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
77579+
<span class="normal">2</span>
77580+
<span class="normal">3</span>
77581+
<span class="normal">4</span>
77582+
<span class="normal">5</span>
77583+
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">func</span><span class="w"> </span><span class="nx">minChanges</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="nx">k</span><span class="w"> </span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="p">{</span>
77584+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">n</span><span class="o">&amp;</span><span class="nx">k</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="nx">k</span><span class="w"> </span><span class="p">{</span>
77585+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span>
77586+
<span class="w"> </span><span class="p">}</span>
77587+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">bits</span><span class="p">.</span><span class="nx">OnesCount</span><span class="p">(</span><span class="nb">uint</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="p">^</span><span class="w"> </span><span class="nx">k</span><span class="p">))</span>
77588+
<span class="p">}</span>
77589+
</code></pre></div></td></tr></table></div>
77590+
</div>
77591+
<div class="tabbed-block">
77592+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
77593+
<span class="normal"> 2</span>
77594+
<span class="normal"> 3</span>
77595+
<span class="normal"> 4</span>
77596+
<span class="normal"> 5</span>
77597+
<span class="normal"> 6</span>
77598+
<span class="normal"> 7</span>
77599+
<span class="normal"> 8</span>
77600+
<span class="normal"> 9</span>
77601+
<span class="normal">10</span>
77602+
<span class="normal">11</span>
77603+
<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">minChanges</span><span class="p">(</span><span class="nx">n</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">k</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>
77604+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="nx">k</span><span class="p">)</span><span class="w"> </span><span class="o">!==</span><span class="w"> </span><span class="nx">k</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="o">-</span><span class="nx">1</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">bitCount</span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="nx">k</span><span class="p">);</span>
77605+
<span class="p">}</span>
77606+
77607+
<span class="kd">function</span><span class="w"> </span><span class="nx">bitCount</span><span class="p">(</span><span class="nx">i</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>
77608+
<span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="p">((</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;&gt;&gt;</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0x55555555</span><span class="p">);</span>
77609+
<span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0x33333333</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="p">((</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;&gt;&gt;</span><span class="w"> </span><span class="mf">2</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0x33333333</span><span class="p">);</span>
77610+
<span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;&gt;&gt;</span><span class="w"> </span><span class="mf">4</span><span class="p">))</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0x0f0f0f0f</span><span class="p">;</span>
77611+
<span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;&gt;&gt;</span><span class="w"> </span><span class="mf">8</span><span class="p">);</span>
77612+
<span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;&gt;&gt;</span><span class="w"> </span><span class="mf">16</span><span class="p">);</span>
77613+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0x3f</span><span class="p">;</span>
77614+
<span class="p">}</span>
7755577615
</code></pre></div></td></tr></table></div>
7755677616
</div>
7755777617
</div>

0 commit comments

Comments
 (0)