@@ -80644,7 +80644,7 @@ <h2 id="_2">解法</h2>
80644
80644
<h3 id="_3">方法一:位运算</h3>
80645
80645
<p>我们用一个长度为 32 的数组 $cnt$ 来统计所有数字的每一位中 $1$ 的出现次数。如果某一位的 $1$ 的出现次数能被 $3$ 整除,那么那个只出现一次的数字二进制表示中对应的那一位也是 $0$;否则,那个只出现一次的数字二进制表示中对应的那一位是 $1$。</p>
80646
80646
<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>
80648
80648
<div class="tabbed-content">
80649
80649
<div class="tabbed-block">
80650
80650
<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>
80890
80890
<span class="p">}</span>
80891
80891
</code></pre></div></td></tr></table></div>
80892
80892
</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">-></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">.<</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">&</span> <span class="mi">1</span>
80923
+ <span class="n">x</span> <span class="o">>>=</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">.<</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"><<</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>
80893
80939
</div>
80894
80940
</div>
80895
80941
<!-- solution:end -->
@@ -80923,6 +80969,11 @@ <h3 id="_3">方法一:位运算</h3>
80923
80969
80924
80970
<nav>
80925
80971
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
+
80926
80977
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
80927
80978
80928
80979
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
@@ -80938,12 +80989,13 @@ <h3 id="_3">方法一:位运算</h3>
80938
80989
<img src="https://avatars.githubusercontent.com/u/70502828?v=4&size=72" alt="YangFong">
80939
80990
</a>
80940
80991
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>
80945
80992
80946
80993
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
+
80947
80999
80948
81000
</nav>
80949
81001
</span>
0 commit comments