Skip to content

Commit fd46e2e

Browse files
committed
deploy: d7dfeb5
1 parent 9d91745 commit fd46e2e

File tree

4 files changed

+206
-6
lines changed

4 files changed

+206
-6
lines changed

en/lc/2412/index.html

Lines changed: 102 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82171,9 +82171,9 @@ <h2 id="solutions">Solutions</h2>
8217182171
<!-- solution:start -->
8217282172

8217382173
<h3 id="solution-1-greedy">Solution 1: Greedy</h3>
82174-
<p>First, we accumulate all the negative profits, denoted as $s$. Then we enumerate each transaction as the last transaction. If <code>transactions[i].x &gt; transactions[i].y</code>, it means the current transaction is losing money, and this transaction has been calculated when we previously accumulated negative profits, so we update the answer with <code>s + transactions[i].y</code>; otherwise, we update the answer with <code>s + transactions[i].x</code>.</p>
82174+
<p>First, we accumulate all negative profits, denoted as $s$. Then, we enumerate each transaction $\text{transactions}[i] = [a, b]$ as the last transaction. If $a &gt; b$, it means the current transaction is a loss, and this transaction has already been included when we accumulated the negative profits earlier. Therefore, we update the answer with $s + b$. Otherwise, we update the answer with $s + a$.</p>
8217582175
<p>The time complexity is $O(n)$, where $n$ is the number of transactions. The space complexity is $O(1)$.</p>
82176-
<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>
82176+
<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">TypeScript</label><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">JavaScript</label></div>
8217782177
<div class="tabbed-content">
8217882178
<div class="tabbed-block">
8217982179
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -82299,6 +82299,106 @@ <h3 id="solution-1-greedy">Solution 1: Greedy</h3>
8229982299
<span class="p">}</span>
8230082300
</code></pre></div></td></tr></table></div>
8230182301
</div>
82302+
<div class="tabbed-block">
82303+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
82304+
<span class="normal"> 2</span>
82305+
<span class="normal"> 3</span>
82306+
<span class="normal"> 4</span>
82307+
<span class="normal"> 5</span>
82308+
<span class="normal"> 6</span>
82309+
<span class="normal"> 7</span>
82310+
<span class="normal"> 8</span>
82311+
<span class="normal"> 9</span>
82312+
<span class="normal">10</span>
82313+
<span class="normal">11</span>
82314+
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">minimumMoney</span><span class="p">(</span><span class="nx">transactions</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>
82315+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">transactions</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="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">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="mf">0</span><span class="p">,</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><span class="w"> </span><span class="mf">0</span><span class="p">);</span>
82316+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
82317+
<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">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="k">of</span><span class="w"> </span><span class="nx">transactions</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82318+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">a</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82319+
<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
82320+
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
82321+
<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">a</span><span class="p">);</span>
82322+
<span class="w"> </span><span class="p">}</span>
82323+
<span class="w"> </span><span class="p">}</span>
82324+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
82325+
<span class="p">}</span>
82326+
</code></pre></div></td></tr></table></div>
82327+
</div>
82328+
<div class="tabbed-block">
82329+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
82330+
<span class="normal"> 2</span>
82331+
<span class="normal"> 3</span>
82332+
<span class="normal"> 4</span>
82333+
<span class="normal"> 5</span>
82334+
<span class="normal"> 6</span>
82335+
<span class="normal"> 7</span>
82336+
<span class="normal"> 8</span>
82337+
<span class="normal"> 9</span>
82338+
<span class="normal">10</span>
82339+
<span class="normal">11</span>
82340+
<span class="normal">12</span>
82341+
<span class="normal">13</span>
82342+
<span class="normal">14</span>
82343+
<span class="normal">15</span>
82344+
<span class="normal">16</span>
82345+
<span class="normal">17</span>
82346+
<span class="normal">18</span>
82347+
<span class="normal">19</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">impl</span><span class="w"> </span><span class="n">Solution</span><span class="w"> </span><span class="p">{</span>
82348+
<span class="w"> </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">minimum_money</span><span class="p">(</span><span class="n">transactions</span><span class="p">:</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="nb">Vec</span><span class="o">&lt;</span><span class="kt">i32</span><span class="o">&gt;&gt;</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="p">{</span>
82349+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">s</span><span class="p">:</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
82350+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">transaction</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="o">&amp;</span><span class="n">transactions</span><span class="w"> </span><span class="p">{</span>
82351+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">transaction</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="n">transaction</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
82352+
<span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">b</span><span class="p">).</span><span class="n">max</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i64</span><span class="p">;</span>
82353+
<span class="w"> </span><span class="p">}</span>
82354+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
82355+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">transaction</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="o">&amp;</span><span class="n">transactions</span><span class="w"> </span><span class="p">{</span>
82356+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">transaction</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="n">transaction</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
82357+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="p">{</span>
82358+
<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ans</span><span class="p">.</span><span class="n">max</span><span class="p">(</span><span class="n">s</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i64</span><span class="p">);</span>
82359+
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
82360+
<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ans</span><span class="p">.</span><span class="n">max</span><span class="p">(</span><span class="n">s</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i64</span><span class="p">);</span>
82361+
<span class="w"> </span><span class="p">}</span>
82362+
<span class="w"> </span><span class="p">}</span>
82363+
<span class="w"> </span><span class="n">ans</span>
82364+
<span class="w"> </span><span class="p">}</span>
82365+
<span class="p">}</span>
82366+
</code></pre></div></td></tr></table></div>
82367+
</div>
82368+
<div class="tabbed-block">
82369+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
82370+
<span class="normal"> 2</span>
82371+
<span class="normal"> 3</span>
82372+
<span class="normal"> 4</span>
82373+
<span class="normal"> 5</span>
82374+
<span class="normal"> 6</span>
82375+
<span class="normal"> 7</span>
82376+
<span class="normal"> 8</span>
82377+
<span class="normal"> 9</span>
82378+
<span class="normal">10</span>
82379+
<span class="normal">11</span>
82380+
<span class="normal">12</span>
82381+
<span class="normal">13</span>
82382+
<span class="normal">14</span>
82383+
<span class="normal">15</span>
82384+
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
82385+
<span class="cm"> * @param {number[][]} transactions</span>
82386+
<span class="cm"> * @return {number}</span>
82387+
<span class="cm"> */</span>
82388+
<span class="kd">var</span><span class="w"> </span><span class="nx">minimumMoney</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">transactions</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82389+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">transactions</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="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">acc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="mf">0</span><span class="p">,</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><span class="w"> </span><span class="mf">0</span><span class="p">);</span>
82390+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
82391+
<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">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="k">of</span><span class="w"> </span><span class="nx">transactions</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82392+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">a</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82393+
<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span>
82394+
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
82395+
<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">ans</span><span class="p">,</span><span class="w"> </span><span class="nx">s</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">a</span><span class="p">);</span>
82396+
<span class="w"> </span><span class="p">}</span>
82397+
<span class="w"> </span><span class="p">}</span>
82398+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
82399+
<span class="p">};</span>
82400+
</code></pre></div></td></tr></table></div>
82401+
</div>
8230282402
</div>
8230382403
</div>
8230482404
<!-- solution:end -->

en/search/search_index.json

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

0 commit comments

Comments
 (0)