@@ -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 > 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 > 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">=></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">></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"><</span><span class="nb">Vec</span><span class="o"><</span><span class="kt">i32</span><span class="o">>></span><span class="p">)</span><span class="w"> </span><span class="p">-></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">&</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">&</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">></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">=></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">></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 -->
0 commit comments