Skip to content

Commit 3687f36

Browse files
committed
deploy: 5f60e89
1 parent 0cdb3d3 commit 3687f36

File tree

10 files changed

+6896
-6875
lines changed

10 files changed

+6896
-6875
lines changed

en/lc/2622/index.html

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -61890,9 +61890,9 @@
6189061890
<ul class="md-nav__list">
6189161891

6189261892
<li class="md-nav__item">
61893-
<a href="#solution-1" class="md-nav__link">
61893+
<a href="#solution-1-hash-table" class="md-nav__link">
6189461894
<span class="md-ellipsis">
61895-
Solution 1
61895+
Solution 1: Hash Table
6189661896
</span>
6189761897
</a>
6189861898

@@ -75708,7 +75708,7 @@ <h2 id="description">Description</h2>
7570875708
<h2 id="solutions">Solutions</h2>
7570975709
<!-- solution:start -->
7571075710

75711-
<h3 id="solution-1">Solution 1</h3>
75711+
<h3 id="solution-1-hash-table">Solution 1: Hash Table</h3>
7571275712
<div class="tabbed-set tabbed-alternate" data-tabs="1:1"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">TypeScript</label></div>
7571375713
<div class="tabbed-content">
7571475714
<div class="tabbed-block">
@@ -75747,47 +75747,33 @@ <h3 id="solution-1">Solution 1</h3>
7574775747
<span class="normal">33</span>
7574875748
<span class="normal">34</span>
7574975749
<span class="normal">35</span>
75750-
<span class="normal">36</span>
75751-
<span class="normal">37</span>
75752-
<span class="normal">38</span>
75753-
<span class="normal">39</span>
75754-
<span class="normal">40</span>
75755-
<span class="normal">41</span>
75756-
<span class="normal">42</span>
75757-
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span><span class="w"> </span><span class="nx">TimeLimitedCache</span><span class="w"> </span><span class="p">{</span>
75758-
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">cache</span><span class="o">:</span><span class="w"> </span><span class="kt">Map</span><span class="o">&lt;</span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="nx">value</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">expire</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">]</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Map</span><span class="p">();</span>
75759-
75760-
<span class="w"> </span><span class="kr">constructor</span><span class="p">()</span><span class="w"> </span><span class="p">{}</span>
75750+
<span class="normal">36</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span><span class="w"> </span><span class="nx">TimeLimitedCache</span><span class="w"> </span><span class="p">{</span>
75751+
<span class="w"> </span><span class="err">#</span><span class="nx">cache</span><span class="o">:</span><span class="w"> </span><span class="kt">Map</span><span class="o">&lt;</span><span class="kt">number</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="nx">value</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">expire</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">]</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Map</span><span class="p">();</span>
7576175752

7576275753
<span class="w"> </span><span class="nx">set</span><span class="p">(</span><span class="nx">key</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">value</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">duration</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">boolean</span><span class="w"> </span><span class="p">{</span>
75763-
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">removeExpire</span><span class="p">();</span>
75764-
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">.</span><span class="nx">has</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span>
75765-
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="nx">value</span><span class="p">,</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">now</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">duration</span><span class="p">]);</span>
75766-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
75754+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">isExist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">cache</span><span class="p">.</span><span class="nx">has</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span>
75755+
75756+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">isExpired</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
75757+
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">cache</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span><span class="w"> </span><span class="p">[</span><span class="nx">value</span><span class="p">,</span><span class="w"> </span><span class="nb">Date</span><span class="p">.</span><span class="nx">now</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">duration</span><span class="p">]);</span>
75758+
<span class="w"> </span><span class="p">}</span>
75759+
75760+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">isExist</span><span class="p">;</span>
7576775761
<span class="w"> </span><span class="p">}</span>
7576875762

7576975763
<span class="w"> </span><span class="nx">get</span><span class="p">(</span><span class="nx">key</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>
75770-
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">removeExpire</span><span class="p">();</span>
75771-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span><span class="o">?</span><span class="p">.[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">??</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
75764+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">isExpired</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
75765+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">cache</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span><span class="o">?</span><span class="p">.[</span><span class="mf">0</span><span class="p">]</span><span class="w"> </span><span class="o">??</span><span class="w"> </span><span class="o">-</span><span class="mf">1</span><span class="p">;</span>
75766+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span>
7577275767
<span class="w"> </span><span class="p">}</span>
7577375768

7577475769
<span class="w"> </span><span class="nx">count</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>
75775-
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">removeExpire</span><span class="p">();</span>
75776-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">.</span><span class="nx">size</span><span class="p">;</span>
75777-
<span class="w"> </span><span class="p">}</span>
75778-
75779-
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">now</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>
75780-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Date</span><span class="p">().</span><span class="nx">getTime</span><span class="p">();</span>
75770+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">xs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">.</span><span class="kr">from</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">cache</span><span class="p">).</span><span class="nx">filter</span><span class="p">(([</span><span class="nx">key</span><span class="p">])</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">isExpired</span><span class="p">(</span><span class="nx">key</span><span class="p">));</span>
75771+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">xs</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
7578175772
<span class="w"> </span><span class="p">}</span>
7578275773

75783-
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">removeExpire</span><span class="p">()</span><span class="o">:</span><span class="w"> </span><span class="ow">void</span><span class="w"> </span><span class="p">{</span>
75784-
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">now</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">now</span><span class="p">();</span>
75785-
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="p">[</span><span class="nx">key</span><span class="p">,</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="nx">expire</span><span class="p">]]</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
75786-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">expire</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="nx">now</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
75787-
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">cache</span><span class="p">.</span><span class="ow">delete</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span>
75788-
<span class="w"> </span><span class="p">}</span>
75789-
<span class="w"> </span><span class="p">}</span>
75790-
<span class="w"> </span><span class="p">}</span>
75774+
<span class="w"> </span><span class="err">#</span><span class="nx">isExpired</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">key</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span>
75775+
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">cache</span><span class="p">.</span><span class="nx">has</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span><span class="w"> </span><span class="o">&amp;&amp;</span>
75776+
<span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">cache</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span><span class="o">?</span><span class="p">.[</span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">??</span><span class="w"> </span><span class="nb">Number</span><span class="p">.</span><span class="nx">NEGATIVE_INFINITY</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nb">Date</span><span class="p">.</span><span class="nx">now</span><span class="p">();</span>
7579175777
<span class="p">}</span>
7579275778

7579375779
<span class="cm">/**</span>
@@ -75832,6 +75818,11 @@ <h3 id="solution-1">Solution 1</h3>
7583275818

7583375819
<nav>
7583475820

75821+
<a href="https://github.com/rain84" class="md-author" title="@rain84">
75822+
75823+
<img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84">
75824+
</a>
75825+
7583575826
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
7583675827

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

en/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)