Skip to content

Commit 143ec17

Browse files
committed
deploy: acbf443
1 parent df80c3d commit 143ec17

File tree

6 files changed

+535
-313
lines changed

6 files changed

+535
-313
lines changed

en/lc/2466/index.html

Lines changed: 104 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59130,6 +59130,15 @@
5913059130
</span>
5913159131
</a>
5913259132

59133+
</li>
59134+
59135+
<li class="md-nav__item">
59136+
<a href="#solution-2-dynamic-programming" class="md-nav__link">
59137+
<span class="md-ellipsis">
59138+
Solution 2: Dynamic programming
59139+
</span>
59140+
</a>
59141+
5913359142
</li>
5913459143

5913559144
</ul>
@@ -81537,9 +81546,9 @@ <h2 id="description">Description</h2>
8153781546
<pre>
8153881547
<strong>Input:</strong> low = 3, high = 3, zero = 1, one = 1
8153981548
<strong>Output:</strong> 8
81540-
<strong>Explanation:</strong>
81541-
One possible valid good string is &quot;011&quot;.
81542-
It can be constructed as follows: &quot;&quot; -&gt; &quot;0&quot; -&gt; &quot;01&quot; -&gt; &quot;011&quot;.
81549+
<strong>Explanation:</strong>
81550+
One possible valid good string is &quot;011&quot;.
81551+
It can be constructed as follows: &quot;&quot; -&gt; &quot;0&quot; -&gt; &quot;01&quot; -&gt; &quot;011&quot;.
8154381552
All binary strings from &quot;000&quot; to &quot;111&quot; are good strings in this example.
8154481553
</pre>
8154581554

@@ -81771,6 +81780,93 @@ <h3 id="solution-1-memoization-search">Solution 1: Memoization Search</h3>
8177181780
</div>
8177281781
<!-- solution:end -->
8177381782

81783+
<!-- solution:start -->
81784+
81785+
<h3 id="solution-2-dynamic-programming">Solution 2: Dynamic programming</h3>
81786+
<div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">TypeScript</label><label for="__tabbed_2_2">JavaScript</label></div>
81787+
<div class="tabbed-content">
81788+
<div class="tabbed-block">
81789+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
81790+
<span class="normal"> 2</span>
81791+
<span class="normal"> 3</span>
81792+
<span class="normal"> 4</span>
81793+
<span class="normal"> 5</span>
81794+
<span class="normal"> 6</span>
81795+
<span class="normal"> 7</span>
81796+
<span class="normal"> 8</span>
81797+
<span class="normal"> 9</span>
81798+
<span class="normal">10</span>
81799+
<span class="normal">11</span>
81800+
<span class="normal">12</span>
81801+
<span class="normal">13</span>
81802+
<span class="normal">14</span>
81803+
<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">countGoodStrings</span><span class="p">(</span><span class="nx">low</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">high</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">zero</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">one</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>
81804+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">mod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">10</span><span class="w"> </span><span class="o">**</span><span class="w"> </span><span class="mf">9</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">7</span><span class="p">;</span>
81805+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">f</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="p">[]</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">Array</span><span class="p">(</span><span class="nx">high</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
81806+
<span class="w"> </span><span class="nx">f</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="mf">1</span><span class="p">;</span>
81807+
81808+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="nx">high</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
81809+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">zero</span><span class="p">)</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">zero</span><span class="p">];</span>
81810+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">one</span><span class="p">)</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">one</span><span class="p">];</span>
81811+
<span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">%=</span><span class="w"> </span><span class="nx">mod</span><span class="p">;</span>
81812+
<span class="w"> </span><span class="p">}</span>
81813+
81814+
<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="nx">f</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">low</span><span class="p">,</span><span class="w"> </span><span class="nx">high</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">reduce</span><span class="p">((</span><span class="nx">acc</span><span class="p">,</span><span class="w"> </span><span class="nx">cur</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">cur</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">);</span>
81815+
81816+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="nx">mod</span><span class="p">;</span>
81817+
<span class="p">}</span>
81818+
</code></pre></div></td></tr></table></div>
81819+
</div>
81820+
<div class="tabbed-block">
81821+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
81822+
<span class="normal"> 2</span>
81823+
<span class="normal"> 3</span>
81824+
<span class="normal"> 4</span>
81825+
<span class="normal"> 5</span>
81826+
<span class="normal"> 6</span>
81827+
<span class="normal"> 7</span>
81828+
<span class="normal"> 8</span>
81829+
<span class="normal"> 9</span>
81830+
<span class="normal">10</span>
81831+
<span class="normal">11</span>
81832+
<span class="normal">12</span>
81833+
<span class="normal">13</span>
81834+
<span class="normal">14</span>
81835+
<span class="normal">15</span>
81836+
<span class="normal">16</span>
81837+
<span class="normal">17</span>
81838+
<span class="normal">18</span>
81839+
<span class="normal">19</span>
81840+
<span class="normal">20</span>
81841+
<span class="normal">21</span>
81842+
<span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
81843+
<span class="cm"> * @param {number} low</span>
81844+
<span class="cm"> * @param {number} high</span>
81845+
<span class="cm"> * @param {number} zero</span>
81846+
<span class="cm"> * @param {number} one</span>
81847+
<span class="cm"> * @return {number}</span>
81848+
<span class="cm"> */</span>
81849+
<span class="kd">function</span><span class="w"> </span><span class="nx">countGoodStrings</span><span class="p">(</span><span class="nx">low</span><span class="p">,</span><span class="w"> </span><span class="nx">high</span><span class="p">,</span><span class="w"> </span><span class="nx">zero</span><span class="p">,</span><span class="w"> </span><span class="nx">one</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
81850+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">mod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">10</span><span class="w"> </span><span class="o">**</span><span class="w"> </span><span class="mf">9</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">7</span><span class="p">;</span>
81851+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="nx">high</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">fill</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span>
81852+
<span class="w"> </span><span class="nx">f</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="mf">1</span><span class="p">;</span>
81853+
81854+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="nx">high</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
81855+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">zero</span><span class="p">)</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">zero</span><span class="p">];</span>
81856+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="nx">one</span><span class="p">)</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">one</span><span class="p">];</span>
81857+
<span class="w"> </span><span class="nx">f</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="w"> </span><span class="o">%=</span><span class="w"> </span><span class="nx">mod</span><span class="p">;</span>
81858+
<span class="w"> </span><span class="p">}</span>
81859+
81860+
<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="nx">f</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">low</span><span class="p">,</span><span class="w"> </span><span class="nx">high</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">).</span><span class="nx">reduce</span><span class="p">((</span><span class="nx">acc</span><span class="p">,</span><span class="w"> </span><span class="nx">cur</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">cur</span><span class="p">,</span><span class="w"> </span><span class="mf">0</span><span class="p">);</span>
81861+
81862+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="nx">mod</span><span class="p">;</span>
81863+
<span class="p">}</span>
81864+
</code></pre></div></td></tr></table></div>
81865+
</div>
81866+
</div>
81867+
</div>
81868+
<!-- solution:end -->
81869+
8177481870
<!-- problem:end -->
8177581871

8177681872

@@ -81800,6 +81896,11 @@ <h3 id="solution-1-memoization-search">Solution 1: Memoization Search</h3>
8180081896

8180181897
<nav>
8180281898

81899+
<a href="https://github.com/rain84" class="md-author" title="@rain84">
81900+
81901+
<img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84">
81902+
</a>
81903+
8180381904
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8180481905

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

0 commit comments

Comments
 (0)