@@ -80665,7 +80665,7 @@ <h3 id="_3">方法一:双指针 + 哈希表</h3>
80665
80665
<p>遍历字符串 $s$,如果此时 $s[i]$ 在哈希表 $vis$ 中存在,说明 $s[i]$ 重复了,我们需要将左边界 $j$ 右移,直到 $s[i]$ 不在哈希表 $vis$ 中为止,然后将 $s[i]$ 加入哈希表 $vis$ 中。此时,我们更新无重复字符子串的最大长度,即 $ans = \max(ans, i - j + 1)$。</p>
80666
80666
<p>遍历结束后,我们返回 $ans$ 即可。</p>
80667
80667
<p>时间复杂度 $O(n)$,空间复杂度 $O(C)$。其中 $n$ 是字符串 $s$ 的长度;而 $C$ 是字符集的大小。</p>
80668
- <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">Rust</label><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">C#</label></div>
80668
+ <div class="tabbed-set tabbed-alternate" data-tabs="1:9 "><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" /><input id="__tabbed_1_9" 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">Rust</label><label for="__tabbed_1_7">JavaScript</label><label for="__tabbed_1_8">C#</label><label for="__tabbed_1_9">Swift </label></div>
80669
80669
<div class="tabbed-content">
80670
80670
<div class="tabbed-block">
80671
80671
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -80911,6 +80911,46 @@ <h3 id="_3">方法一:双指针 + 哈希表</h3>
80911
80911
<span class="p">}</span>
80912
80912
</code></pre></div></td></tr></table></div>
80913
80913
</div>
80914
+ <div class="tabbed-block">
80915
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
80916
+ <span class="normal"> 2</span>
80917
+ <span class="normal"> 3</span>
80918
+ <span class="normal"> 4</span>
80919
+ <span class="normal"> 5</span>
80920
+ <span class="normal"> 6</span>
80921
+ <span class="normal"> 7</span>
80922
+ <span class="normal"> 8</span>
80923
+ <span class="normal"> 9</span>
80924
+ <span class="normal">10</span>
80925
+ <span class="normal">11</span>
80926
+ <span class="normal">12</span>
80927
+ <span class="normal">13</span>
80928
+ <span class="normal">14</span>
80929
+ <span class="normal">15</span>
80930
+ <span class="normal">16</span>
80931
+ <span class="normal">17</span>
80932
+ <span class="normal">18</span>
80933
+ <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>
80934
+ <span class="kd">func</span> <span class="nf">lengthOfLongestSubstring</span><span class="p">(</span><span class="kc">_</span> <span class="n">s</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Int</span> <span class="p">{</span>
80935
+ <span class="kd">var</span> <span class="nv">ans</span> <span class="p">=</span> <span class="mi">0</span>
80936
+ <span class="kd">var</span> <span class="nv">j</span> <span class="p">=</span> <span class="mi">0</span>
80937
+ <span class="kd">var</span> <span class="nv">vis</span> <span class="p">=</span> <span class="n">Set</span><span class="p"><</span><span class="nb">Character</span><span class="p">>()</span>
80938
+ <span class="kd">let</span> <span class="nv">sArray</span> <span class="p">=</span> <span class="nb">Array</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
80939
+
80940
+ <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="n">sArray</span><span class="p">.</span><span class="bp">count</span> <span class="p">{</span>
80941
+ <span class="k">while</span> <span class="n">vis</span><span class="p">.</span><span class="bp">contains</span><span class="p">(</span><span class="n">sArray</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="p">{</span>
80942
+ <span class="n">vis</span><span class="p">.</span><span class="n">remove</span><span class="p">(</span><span class="n">sArray</span><span class="p">[</span><span class="n">j</span><span class="p">])</span>
80943
+ <span class="n">j</span> <span class="o">+=</span> <span class="mi">1</span>
80944
+ <span class="p">}</span>
80945
+ <span class="n">vis</span><span class="p">.</span><span class="bp">insert</span><span class="p">(</span><span class="n">sArray</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
80946
+ <span class="n">ans</span> <span class="p">=</span> <span class="bp">max</span><span class="p">(</span><span class="n">ans</span><span class="p">,</span> <span class="n">i</span> <span class="o">-</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
80947
+ <span class="p">}</span>
80948
+
80949
+ <span class="k">return</span> <span class="n">ans</span>
80950
+ <span class="p">}</span>
80951
+ <span class="p">}</span>
80952
+ </code></pre></div></td></tr></table></div>
80953
+ </div>
80914
80954
</div>
80915
80955
</div>
80916
80956
<!-- solution:end -->
@@ -81143,6 +81183,11 @@ <h3 id="_4">方法二</h3>
81143
81183
81144
81184
<nav>
81145
81185
81186
+ <a href="https://github.com/klever34" class="md-author" title="@klever34">
81187
+
81188
+ <img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
81189
+ </a>
81190
+
81146
81191
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
81147
81192
81148
81193
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
@@ -81158,16 +81203,11 @@ <h3 id="_4">方法二</h3>
81158
81203
<img src="https://avatars.githubusercontent.com/u/85606371?v=4&size=72" alt="xiongbinzou">
81159
81204
</a>
81160
81205
81161
- <a href="https://github.com/YangFong" class="md-author" title="@YangFong">
81162
-
81163
- <img src="https://avatars.githubusercontent.com/u/70502828?v=4&size=72" alt="YangFong">
81164
- </a>
81165
-
81166
81206
81167
81207
81168
81208
81169
81209
<a href="https://github.com/doocs/leetcode/blob/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9848.%20%E6%9C%80%E9%95%BF%E4%B8%8D%E5%90%AB%E9%87%8D%E5%A4%8D%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2/README.md" class="md-author md-author--more">
81170
- +2
81210
+ +3
81171
81211
</a>
81172
81212
81173
81213
0 commit comments