Skip to content

Commit cf32a96

Browse files
committed
deploy: cf78167
1 parent e03ff57 commit cf32a96

File tree

6 files changed

+94
-6
lines changed

6 files changed

+94
-6
lines changed

en/lc/3180/index.html

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80312,7 +80312,7 @@ <h3 id="solution-3-dynamic-programming-bit-manipulation">Solution 3: Dynamic Pro
8031280312
<p>Observing the state transition equation from Solution 2, $f[j] = f[j] \vee f[j - v]$, this is equivalent to taking the lower $v$ bits of $f$, shifting them left by $v$ bits, and then performing an OR operation with the original $f$.</p>
8031380313
<p>Thus, the answer is the position of the highest bit in $f$.</p>
8031480314
<p>The time complexity is $O(n \times M / w)$, and the space complexity is $O(n + M / w)$. Where $n$ is the length of the <code>rewardValues</code> array, $M$ is twice the maximum value in the <code>rewardValues</code> array, and the integer $w = 32$ or $64$.</p>
80315-
<div class="tabbed-set tabbed-alternate" data-tabs="3:4"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><input id="__tabbed_3_3" name="__tabbed_3" type="radio" /><input id="__tabbed_3_4" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">Python3</label><label for="__tabbed_3_2">Java</label><label for="__tabbed_3_3">C++</label><label for="__tabbed_3_4">Go</label></div>
80315+
<div class="tabbed-set tabbed-alternate" data-tabs="3:5"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><input id="__tabbed_3_3" name="__tabbed_3" type="radio" /><input id="__tabbed_3_4" name="__tabbed_3" type="radio" /><input id="__tabbed_3_5" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">Python3</label><label for="__tabbed_3_2">Java</label><label for="__tabbed_3_3">C++</label><label for="__tabbed_3_4">Go</label><label for="__tabbed_3_5">TypeScript</label></div>
8031680316
<div class="tabbed-content">
8031780317
<div class="tabbed-block">
8031880318
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -80424,6 +80424,28 @@ <h3 id="solution-3-dynamic-programming-bit-manipulation">Solution 3: Dynamic Pro
8042480424
<span class="p">}</span>
8042580425
</code></pre></div></td></tr></table></div>
8042680426
</div>
80427+
<div class="tabbed-block">
80428+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
80429+
<span class="normal"> 2</span>
80430+
<span class="normal"> 3</span>
80431+
<span class="normal"> 4</span>
80432+
<span class="normal"> 5</span>
80433+
<span class="normal"> 6</span>
80434+
<span class="normal"> 7</span>
80435+
<span class="normal"> 8</span>
80436+
<span class="normal"> 9</span>
80437+
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">maxTotalReward</span><span class="p">(</span><span class="nx">rewardValues</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>
80438+
<span class="w"> </span><span class="nx">rewardValues</span><span class="p">.</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
80439+
<span class="w"> </span><span class="nx">rewardValues</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[...</span><span class="ow">new</span><span class="w"> </span><span class="nb">Set</span><span class="p">(</span><span class="nx">rewardValues</span><span class="p">)];</span>
80440+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1n</span><span class="p">;</span>
80441+
<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="nx">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">rewardValues</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
80442+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="mi">1n</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nb">BigInt</span><span class="p">(</span><span class="nx">x</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1n</span><span class="p">;</span>
80443+
<span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="nx">f</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="nx">mask</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nb">BigInt</span><span class="p">(</span><span class="nx">x</span><span class="p">));</span>
80444+
<span class="w"> </span><span class="p">}</span>
80445+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">f</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="mf">2</span><span class="p">).</span><span class="nx">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
80446+
<span class="p">}</span>
80447+
</code></pre></div></td></tr></table></div>
80448+
</div>
8042780449
</div>
8042880450
</div>
8042980451
<!-- solution:end -->

en/lc/3181/index.html

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79843,7 +79843,7 @@ <h3 id="solution-1-dynamic-programming-bit-manipulation">Solution 1: Dynamic Pro
7984379843
<p>Observing the state transition equation $f[j] = f[j] \vee f[j - v]$, this is equivalent to taking the lower $v$ bits of $f$, shifting them left by $v$ bits, and then performing an OR operation with the original $f$.</p>
7984479844
<p>Thus, the answer is the position of the highest bit in $f$.</p>
7984579845
<p>The time complexity is $O(n \times M / w)$, and the space complexity is $O(n + M / w)$. Where $n$ is the length of the <code>rewardValues</code> array, $M$ is twice the maximum value in the <code>rewardValues</code> array, and the integer $w = 32$ or $64$.</p>
79846-
<div class="tabbed-set tabbed-alternate" data-tabs="1:4"><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" /><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></div>
79846+
<div class="tabbed-set tabbed-alternate" data-tabs="1:5"><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" /><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></div>
7984779847
<div class="tabbed-content">
7984879848
<div class="tabbed-block">
7984979849
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -79955,6 +79955,28 @@ <h3 id="solution-1-dynamic-programming-bit-manipulation">Solution 1: Dynamic Pro
7995579955
<span class="p">}</span>
7995679956
</code></pre></div></td></tr></table></div>
7995779957
</div>
79958+
<div class="tabbed-block">
79959+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
79960+
<span class="normal"> 2</span>
79961+
<span class="normal"> 3</span>
79962+
<span class="normal"> 4</span>
79963+
<span class="normal"> 5</span>
79964+
<span class="normal"> 6</span>
79965+
<span class="normal"> 7</span>
79966+
<span class="normal"> 8</span>
79967+
<span class="normal"> 9</span>
79968+
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">maxTotalReward</span><span class="p">(</span><span class="nx">rewardValues</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>
79969+
<span class="w"> </span><span class="nx">rewardValues</span><span class="p">.</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
79970+
<span class="w"> </span><span class="nx">rewardValues</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[...</span><span class="ow">new</span><span class="w"> </span><span class="nb">Set</span><span class="p">(</span><span class="nx">rewardValues</span><span class="p">)];</span>
79971+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1n</span><span class="p">;</span>
79972+
<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="nx">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">rewardValues</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
79973+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="mi">1n</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nb">BigInt</span><span class="p">(</span><span class="nx">x</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1n</span><span class="p">;</span>
79974+
<span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="nx">f</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="nx">mask</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nb">BigInt</span><span class="p">(</span><span class="nx">x</span><span class="p">));</span>
79975+
<span class="w"> </span><span class="p">}</span>
79976+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">f</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="mf">2</span><span class="p">).</span><span class="nx">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
79977+
<span class="p">}</span>
79978+
</code></pre></div></td></tr></table></div>
79979+
</div>
7995879980
</div>
7995979981
</div>
7996079982
<!-- solution:end -->

en/search/search_index.json

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

lc/3180/index.html

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84914,7 +84914,7 @@ <h3 id="_5">方法三:动态规划 + 位运算</h3>
8491484914
<p>观察方法二的状态转移方程 $f[j] = f[j] \vee f[j - v]$,这相当于取 $f$ 的低 $v$ 位,再左移 $v$ 位,然后与原来的 $f$ 进行或运算。</p>
8491584915
<p>那么答案为 $f$ 的最高位的位置。</p>
8491684916
<p>时间复杂度 $O(n \times M / w)$,空间复杂度 $O(n + M / w)$。其中 $n$ 是数组 <code>rewardValues</code> 的长度,而 $M$ 是数组 <code>rewardValues</code> 中的最大值的两倍。整数 $w = 32$ 或 $64$。</p>
84917-
<div class="tabbed-set tabbed-alternate" data-tabs="3:4"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><input id="__tabbed_3_3" name="__tabbed_3" type="radio" /><input id="__tabbed_3_4" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">Python3</label><label for="__tabbed_3_2">Java</label><label for="__tabbed_3_3">C++</label><label for="__tabbed_3_4">Go</label></div>
84917+
<div class="tabbed-set tabbed-alternate" data-tabs="3:5"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><input id="__tabbed_3_3" name="__tabbed_3" type="radio" /><input id="__tabbed_3_4" name="__tabbed_3" type="radio" /><input id="__tabbed_3_5" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">Python3</label><label for="__tabbed_3_2">Java</label><label for="__tabbed_3_3">C++</label><label for="__tabbed_3_4">Go</label><label for="__tabbed_3_5">TypeScript</label></div>
8491884918
<div class="tabbed-content">
8491984919
<div class="tabbed-block">
8492084920
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -85026,6 +85026,28 @@ <h3 id="_5">方法三:动态规划 + 位运算</h3>
8502685026
<span class="p">}</span>
8502785027
</code></pre></div></td></tr></table></div>
8502885028
</div>
85029+
<div class="tabbed-block">
85030+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
85031+
<span class="normal"> 2</span>
85032+
<span class="normal"> 3</span>
85033+
<span class="normal"> 4</span>
85034+
<span class="normal"> 5</span>
85035+
<span class="normal"> 6</span>
85036+
<span class="normal"> 7</span>
85037+
<span class="normal"> 8</span>
85038+
<span class="normal"> 9</span>
85039+
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">maxTotalReward</span><span class="p">(</span><span class="nx">rewardValues</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>
85040+
<span class="w"> </span><span class="nx">rewardValues</span><span class="p">.</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
85041+
<span class="w"> </span><span class="nx">rewardValues</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[...</span><span class="ow">new</span><span class="w"> </span><span class="nb">Set</span><span class="p">(</span><span class="nx">rewardValues</span><span class="p">)];</span>
85042+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1n</span><span class="p">;</span>
85043+
<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="nx">x</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">rewardValues</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
85044+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="mi">1n</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nb">BigInt</span><span class="p">(</span><span class="nx">x</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1n</span><span class="p">;</span>
85045+
<span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">((</span><span class="nx">f</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="nx">mask</span><span class="p">)</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="nb">BigInt</span><span class="p">(</span><span class="nx">x</span><span class="p">));</span>
85046+
<span class="w"> </span><span class="p">}</span>
85047+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">f</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="mf">2</span><span class="p">).</span><span class="nx">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
85048+
<span class="p">}</span>
85049+
</code></pre></div></td></tr></table></div>
85050+
</div>
8502985051
</div>
8503085052
</div>
8503185053
<!-- solution:end -->

0 commit comments

Comments
 (0)