Skip to content

Commit 8f0c182

Browse files
committed
deploy: 5fe3866
1 parent a8e4631 commit 8f0c182

File tree

12 files changed

+593
-64
lines changed

12 files changed

+593
-64
lines changed

lcof/56.1/index.html

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80645,7 +80645,7 @@ <h3 id="_3">方法一:位运算</h3>
8064580645
<p>由于这两个数字不相等,因此异或结果中至少存在一位为 $1$。我们通过 <code>lowbit</code> 运算找到异或结果中最低位的 $1$,并将数组中的所有数字按照该位是否为 $1$ 分为两组,这样两个只出现一次的数字就被分到了不同的组中。</p>
8064680646
<p>对两个组分别进行异或运算,即可得到两个只出现一次的数字。</p>
8064780647
<p>时间复杂度 $O(n)$,其中 $n$ 为数组长度。空间复杂度 $O(1)$。</p>
80648-
<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">C#</label></div>
80648+
<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">JavaScript</label><label for="__tabbed_1_7">C#</label><label for="__tabbed_1_8">Swift</label></div>
8064980649
<div class="tabbed-content">
8065080650
<div class="tabbed-block">
8065180651
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -80883,6 +80883,46 @@ <h3 id="_3">方法一:位运算</h3>
8088380883
<span class="p">}</span>
8088480884
</code></pre></div></td></tr></table></div>
8088580885
</div>
80886+
<div class="tabbed-block">
80887+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
80888+
<span class="normal"> 2</span>
80889+
<span class="normal"> 3</span>
80890+
<span class="normal"> 4</span>
80891+
<span class="normal"> 5</span>
80892+
<span class="normal"> 6</span>
80893+
<span class="normal"> 7</span>
80894+
<span class="normal"> 8</span>
80895+
<span class="normal"> 9</span>
80896+
<span class="normal">10</span>
80897+
<span class="normal">11</span>
80898+
<span class="normal">12</span>
80899+
<span class="normal">13</span>
80900+
<span class="normal">14</span>
80901+
<span class="normal">15</span>
80902+
<span class="normal">16</span>
80903+
<span class="normal">17</span>
80904+
<span class="normal">18</span>
80905+
<span class="normal">19</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
80906+
<span class="kd">func</span> <span class="nf">singleNumbers</span><span class="p">(</span><span class="kc">_</span> <span class="n">nums</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">])</span> <span class="p">-&gt;</span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span> <span class="p">{</span>
80907+
<span class="kd">var</span> <span class="nv">xorSum</span> <span class="p">=</span> <span class="mi">0</span>
80908+
<span class="k">for</span> <span class="n">num</span> <span class="k">in</span> <span class="n">nums</span> <span class="p">{</span>
80909+
<span class="n">xorSum</span> <span class="o">^=</span> <span class="n">num</span>
80910+
<span class="p">}</span>
80911+
80912+
<span class="kd">let</span> <span class="nv">lowBit</span> <span class="p">=</span> <span class="n">xorSum</span> <span class="o">&amp;</span> <span class="o">-</span><span class="n">xorSum</span>
80913+
<span class="kd">var</span> <span class="nv">a</span> <span class="p">=</span> <span class="mi">0</span>
80914+
<span class="k">for</span> <span class="n">num</span> <span class="k">in</span> <span class="n">nums</span> <span class="p">{</span>
80915+
<span class="k">if</span> <span class="p">(</span><span class="n">num</span> <span class="o">&amp;</span> <span class="n">lowBit</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span> <span class="p">{</span>
80916+
<span class="n">a</span> <span class="o">^=</span> <span class="n">num</span>
80917+
<span class="p">}</span>
80918+
<span class="p">}</span>
80919+
80920+
<span class="kd">let</span> <span class="nv">b</span> <span class="p">=</span> <span class="n">xorSum</span> <span class="o">^</span> <span class="n">a</span>
80921+
<span class="k">return</span> <span class="p">[</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">]</span>
80922+
<span class="p">}</span>
80923+
<span class="p">}</span>
80924+
</code></pre></div></td></tr></table></div>
80925+
</div>
8088680926
</div>
8088780927
</div>
8088880928
<!-- solution:end -->
@@ -80916,6 +80956,11 @@ <h3 id="_3">方法一:位运算</h3>
8091680956

8091780957
<nav>
8091880958

80959+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
80960+
80961+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
80962+
</a>
80963+
8091980964
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8092080965

8092180966
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">

lcof/56.2/index.html

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80644,7 +80644,7 @@ <h2 id="_2">解法</h2>
8064480644
<h3 id="_3">方法一:位运算</h3>
8064580645
<p>我们用一个长度为 32 的数组 $cnt$ 来统计所有数字的每一位中 $1$ 的出现次数。如果某一位的 $1$ 的出现次数能被 $3$ 整除,那么那个只出现一次的数字二进制表示中对应的那一位也是 $0$;否则,那个只出现一次的数字二进制表示中对应的那一位是 $1$。</p>
8064680646
<p>时间复杂度 $O(n \times C)$,空间复杂度 $O(C)$。其中 $n$ 是数组的长度;而 $C$ 是整数的位数,本题中 $C=32$。</p>
80647-
<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">Rust</label><label for="__tabbed_1_6">JavaScript</label><label for="__tabbed_1_7">C#</label></div>
80647+
<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">Rust</label><label for="__tabbed_1_6">JavaScript</label><label for="__tabbed_1_7">C#</label><label for="__tabbed_1_8">Swift</label></div>
8064880648
<div class="tabbed-content">
8064980649
<div class="tabbed-block">
8065080650
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -80890,6 +80890,52 @@ <h3 id="_3">方法一:位运算</h3>
8089080890
<span class="p">}</span>
8089180891
</code></pre></div></td></tr></table></div>
8089280892
</div>
80893+
<div class="tabbed-block">
80894+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
80895+
<span class="normal"> 2</span>
80896+
<span class="normal"> 3</span>
80897+
<span class="normal"> 4</span>
80898+
<span class="normal"> 5</span>
80899+
<span class="normal"> 6</span>
80900+
<span class="normal"> 7</span>
80901+
<span class="normal"> 8</span>
80902+
<span class="normal"> 9</span>
80903+
<span class="normal">10</span>
80904+
<span class="normal">11</span>
80905+
<span class="normal">12</span>
80906+
<span class="normal">13</span>
80907+
<span class="normal">14</span>
80908+
<span class="normal">15</span>
80909+
<span class="normal">16</span>
80910+
<span class="normal">17</span>
80911+
<span class="normal">18</span>
80912+
<span class="normal">19</span>
80913+
<span class="normal">20</span>
80914+
<span class="normal">21</span>
80915+
<span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
80916+
<span class="kd">func</span> <span class="nf">singleNumber</span><span class="p">(</span><span class="kc">_</span> <span class="n">nums</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">])</span> <span class="p">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
80917+
<span class="kd">var</span> <span class="nv">bitCounts</span> <span class="p">=</span> <span class="p">[</span><span class="nb">Int</span><span class="p">](</span><span class="n">repeating</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="bp">count</span><span class="p">:</span> <span class="mi">32</span><span class="p">)</span>
80918+
80919+
<span class="k">for</span> <span class="n">num</span> <span class="k">in</span> <span class="n">nums</span> <span class="p">{</span>
80920+
<span class="kd">var</span> <span class="nv">x</span> <span class="p">=</span> <span class="n">num</span>
80921+
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">.&lt;</span><span class="mi">32</span> <span class="p">{</span>
80922+
<span class="n">bitCounts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">x</span> <span class="o">&amp;</span> <span class="mi">1</span>
80923+
<span class="n">x</span> <span class="o">&gt;&gt;=</span> <span class="mi">1</span>
80924+
<span class="p">}</span>
80925+
<span class="p">}</span>
80926+
80927+
<span class="kd">var</span> <span class="nv">result</span> <span class="p">=</span> <span class="mi">0</span>
80928+
<span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">.&lt;</span><span class="mi">32</span> <span class="p">{</span>
80929+
<span class="k">if</span> <span class="n">bitCounts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">%</span> <span class="mi">3</span> <span class="p">==</span> <span class="mi">1</span> <span class="p">{</span>
80930+
<span class="n">result</span> <span class="o">|=</span> <span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="n">i</span>
80931+
<span class="p">}</span>
80932+
<span class="p">}</span>
80933+
80934+
<span class="k">return</span> <span class="n">result</span>
80935+
<span class="p">}</span>
80936+
<span class="p">}</span>
80937+
</code></pre></div></td></tr></table></div>
80938+
</div>
8089380939
</div>
8089480940
</div>
8089580941
<!-- solution:end -->
@@ -80923,6 +80969,11 @@ <h3 id="_3">方法一:位运算</h3>
8092380969

8092480970
<nav>
8092580971

80972+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
80973+
80974+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
80975+
</a>
80976+
8092680977
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8092780978

8092880979
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
@@ -80938,12 +80989,13 @@ <h3 id="_3">方法一:位运算</h3>
8093880989
<img src="https://avatars.githubusercontent.com/u/70502828?v=4&size=72" alt="YangFong">
8093980990
</a>
8094080991

80941-
<a href="https://github.com/matteokjh" class="md-author" title="@matteokjh">
80942-
80943-
<img src="https://avatars.githubusercontent.com/u/24963745?v=4&size=72" alt="matteokjh">
80944-
</a>
8094580992

8094680993

80994+
80995+
<a href="https://github.com/doocs/leetcode/blob/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9856%20-%20II.%20%E6%95%B0%E7%BB%84%E4%B8%AD%E6%95%B0%E5%AD%97%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0%20II/README.md" class="md-author md-author--more">
80996+
+1
80997+
</a>
80998+
8094780999

8094881000
</nav>
8094981001
</span>

0 commit comments

Comments
 (0)