Skip to content

Commit 0cf1640

Browse files
committed
deploy: 6b03c75
1 parent 4733e38 commit 0cf1640

File tree

4 files changed

+171
-4
lines changed

4 files changed

+171
-4
lines changed

lcp/12/index.html

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84849,7 +84849,7 @@ <h3 id="_3">方法一:贪心 + 二分查找</h3>
8484984849
<p>我们定义函数 $check(T)$,表示是否存在一种分组方案,使得每一组去掉最大值后不超过 $T$,并且分组数不超过 $m$。</p>
8485084850
<p>我们可以用贪心的方法来判断是否存在这样的分组方案。我们从左到右遍历题目,将题目耗时加入当前总耗时 $s$,并更新当前分组的最大值 $mx$。如果当前总耗时 $s$ 减去当前分组的最大值 $mx$ 大于 $T$,则将当前题目作为新的分组的第一题,更新 $s$ 和 $mx$。继续遍历题目,直到遍历完所有题目。如果分组数不超过 $m$,则说明存在这样的分组方案,返回 $true$,否则返回 $false$。</p>
8485184851
<p>时间复杂度 $O(n \times \log S)$,空间复杂度 $O(1)$。其中 $n$ 和 $S$ 分别为题目数量和题目总耗时。</p>
84852-
<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>
84852+
<div class="tabbed-set tabbed-alternate" data-tabs="1:6"><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" /><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">Swift</label></div>
8485384853
<div class="tabbed-content">
8485484854
<div class="tabbed-block">
8485584855
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -85111,6 +85111,74 @@ <h3 id="_3">方法一:贪心 + 二分查找</h3>
8511185111
<span class="p">}</span>
8511285112
</code></pre></div></td></tr></table></div>
8511385113
</div>
85114+
<div class="tabbed-block">
85115+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
85116+
<span class="normal"> 2</span>
85117+
<span class="normal"> 3</span>
85118+
<span class="normal"> 4</span>
85119+
<span class="normal"> 5</span>
85120+
<span class="normal"> 6</span>
85121+
<span class="normal"> 7</span>
85122+
<span class="normal"> 8</span>
85123+
<span class="normal"> 9</span>
85124+
<span class="normal">10</span>
85125+
<span class="normal">11</span>
85126+
<span class="normal">12</span>
85127+
<span class="normal">13</span>
85128+
<span class="normal">14</span>
85129+
<span class="normal">15</span>
85130+
<span class="normal">16</span>
85131+
<span class="normal">17</span>
85132+
<span class="normal">18</span>
85133+
<span class="normal">19</span>
85134+
<span class="normal">20</span>
85135+
<span class="normal">21</span>
85136+
<span class="normal">22</span>
85137+
<span class="normal">23</span>
85138+
<span class="normal">24</span>
85139+
<span class="normal">25</span>
85140+
<span class="normal">26</span>
85141+
<span class="normal">27</span>
85142+
<span class="normal">28</span>
85143+
<span class="normal">29</span>
85144+
<span class="normal">30</span>
85145+
<span class="normal">31</span>
85146+
<span class="normal">32</span>
85147+
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
85148+
<span class="kd">func</span> <span class="nf">minTime</span><span class="p">(</span><span class="kc">_</span> <span class="n">time</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">m</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
85149+
<span class="kd">var</span> <span class="nv">left</span> <span class="p">=</span> <span class="mi">0</span>
85150+
<span class="kd">var</span> <span class="nv">right</span> <span class="p">=</span> <span class="n">time</span><span class="p">.</span><span class="bp">reduce</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">+</span><span class="p">)</span>
85151+
85152+
<span class="k">while</span> <span class="kr">left</span> <span class="o">&lt;</span> <span class="kr">right</span> <span class="p">{</span>
85153+
<span class="kd">let</span> <span class="nv">mid</span> <span class="p">=</span> <span class="p">(</span><span class="kr">left</span> <span class="o">+</span> <span class="kr">right</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
85154+
<span class="k">if</span> <span class="n">check</span><span class="p">(</span><span class="n">mid</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span> <span class="p">{</span>
85155+
<span class="kr">right</span> <span class="p">=</span> <span class="n">mid</span>
85156+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
85157+
<span class="kr">left</span> <span class="p">=</span> <span class="n">mid</span> <span class="o">+</span> <span class="mi">1</span>
85158+
<span class="p">}</span>
85159+
<span class="p">}</span>
85160+
<span class="k">return</span> <span class="kr">left</span>
85161+
<span class="p">}</span>
85162+
85163+
<span class="kd">private</span> <span class="kd">func</span> <span class="nf">check</span><span class="p">(</span><span class="kc">_</span> <span class="n">t</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">time</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">m</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Bool</span> <span class="p">{</span>
85164+
<span class="kd">var</span> <span class="nv">sum</span> <span class="p">=</span> <span class="mi">0</span>
85165+
<span class="kd">var</span> <span class="nv">maxTime</span> <span class="p">=</span> <span class="mi">0</span>
85166+
<span class="kd">var</span> <span class="nv">days</span> <span class="p">=</span> <span class="mi">1</span>
85167+
85168+
<span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">time</span> <span class="p">{</span>
85169+
<span class="n">sum</span> <span class="o">+=</span> <span class="n">x</span>
85170+
<span class="n">maxTime</span> <span class="p">=</span> <span class="bp">max</span><span class="p">(</span><span class="n">maxTime</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
85171+
<span class="k">if</span> <span class="n">sum</span> <span class="o">-</span> <span class="n">maxTime</span> <span class="o">&gt;</span> <span class="n">t</span> <span class="p">{</span>
85172+
<span class="n">sum</span> <span class="p">=</span> <span class="n">x</span>
85173+
<span class="n">maxTime</span> <span class="p">=</span> <span class="n">x</span>
85174+
<span class="n">days</span> <span class="o">+=</span> <span class="mi">1</span>
85175+
<span class="p">}</span>
85176+
<span class="p">}</span>
85177+
<span class="k">return</span> <span class="n">days</span> <span class="o">&lt;=</span> <span class="n">m</span>
85178+
<span class="p">}</span>
85179+
<span class="p">}</span>
85180+
</code></pre></div></td></tr></table></div>
85181+
</div>
8511485182
</div>
8511585183
</div>
8511685184
<!-- solution:end -->
@@ -85144,6 +85212,11 @@ <h3 id="_3">方法一:贪心 + 二分查找</h3>
8514485212

8514585213
<nav>
8514685214

85215+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
85216+
85217+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
85218+
</a>
85219+
8514785220
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8514885221

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

lcp/17/index.html

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84832,7 +84832,7 @@ <h2 id="_2">解法</h2>
8483284832
<!-- solution:start -->
8483384833

8483484834
<h3 id="_3">方法一</h3>
84835-
<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>
84835+
<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">Swift</label></div>
8483684836
<div class="tabbed-content">
8483784837
<div class="tabbed-block">
8483884838
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -84934,6 +84934,36 @@ <h3 id="_3">方法一</h3>
8493484934
<span class="p">}</span>
8493584935
</code></pre></div></td></tr></table></div>
8493684936
</div>
84937+
<div class="tabbed-block">
84938+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
84939+
<span class="normal"> 2</span>
84940+
<span class="normal"> 3</span>
84941+
<span class="normal"> 4</span>
84942+
<span class="normal"> 5</span>
84943+
<span class="normal"> 6</span>
84944+
<span class="normal"> 7</span>
84945+
<span class="normal"> 8</span>
84946+
<span class="normal"> 9</span>
84947+
<span class="normal">10</span>
84948+
<span class="normal">11</span>
84949+
<span class="normal">12</span>
84950+
<span class="normal">13</span>
84951+
<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
84952+
<span class="kd">func</span> <span class="nf">calculate</span><span class="p">(</span><span class="kc">_</span> <span class="n">s</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
84953+
<span class="kd">var</span> <span class="nv">x</span> <span class="p">=</span> <span class="mi">1</span>
84954+
<span class="kd">var</span> <span class="nv">y</span> <span class="p">=</span> <span class="mi">0</span>
84955+
<span class="k">for</span> <span class="n">c</span> <span class="k">in</span> <span class="n">s</span> <span class="p">{</span>
84956+
<span class="k">if</span> <span class="n">c</span> <span class="p">==</span> <span class="s">&quot;A&quot;</span> <span class="p">{</span>
84957+
<span class="n">x</span> <span class="p">=</span> <span class="n">x</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">y</span>
84958+
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="n">c</span> <span class="p">==</span> <span class="s">&quot;B&quot;</span> <span class="p">{</span>
84959+
<span class="n">y</span> <span class="p">=</span> <span class="n">y</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">x</span>
84960+
<span class="p">}</span>
84961+
<span class="p">}</span>
84962+
<span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span>
84963+
<span class="p">}</span>
84964+
<span class="p">}</span>
84965+
</code></pre></div></td></tr></table></div>
84966+
</div>
8493784967
</div>
8493884968
</div>
8493984969
<!-- solution:end -->
@@ -84967,6 +84997,11 @@ <h3 id="_3">方法一</h3>
8496784997

8496884998
<nav>
8496984999

85000+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
85001+
85002+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
85003+
</a>
85004+
8497085005
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8497185006

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

lcp/18/index.html

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84851,7 +84851,7 @@ <h2 id="_2">解法</h2>
8485184851
<!-- solution:start -->
8485284852

8485384853
<h3 id="_3">方法一</h3>
84854-
<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>
84854+
<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">Swift</label></div>
8485584855
<div class="tabbed-content">
8485684856
<div class="tabbed-block">
8485784857
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -85021,6 +85021,60 @@ <h3 id="_3">方法一</h3>
8502185021
<span class="p">}</span>
8502285022
</code></pre></div></td></tr></table></div>
8502385023
</div>
85024+
<div class="tabbed-block">
85025+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
85026+
<span class="normal"> 2</span>
85027+
<span class="normal"> 3</span>
85028+
<span class="normal"> 4</span>
85029+
<span class="normal"> 5</span>
85030+
<span class="normal"> 6</span>
85031+
<span class="normal"> 7</span>
85032+
<span class="normal"> 8</span>
85033+
<span class="normal"> 9</span>
85034+
<span class="normal">10</span>
85035+
<span class="normal">11</span>
85036+
<span class="normal">12</span>
85037+
<span class="normal">13</span>
85038+
<span class="normal">14</span>
85039+
<span class="normal">15</span>
85040+
<span class="normal">16</span>
85041+
<span class="normal">17</span>
85042+
<span class="normal">18</span>
85043+
<span class="normal">19</span>
85044+
<span class="normal">20</span>
85045+
<span class="normal">21</span>
85046+
<span class="normal">22</span>
85047+
<span class="normal">23</span>
85048+
<span class="normal">24</span>
85049+
<span class="normal">25</span>
85050+
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
85051+
<span class="kd">func</span> <span class="nf">breakfastNumber</span><span class="p">(</span><span class="kc">_</span> <span class="n">staple</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">drinks</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="kc">_</span> <span class="n">x</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Int</span> <span class="p">{</span>
85052+
<span class="kd">let</span> <span class="nv">mod</span> <span class="p">=</span> <span class="mi">1000000007</span>
85053+
<span class="kd">var</span> <span class="nv">result</span> <span class="p">=</span> <span class="mi">0</span>
85054+
<span class="kd">let</span> <span class="nv">sortedDrinks</span> <span class="p">=</span> <span class="n">drinks</span><span class="p">.</span><span class="bp">sorted</span><span class="p">()</span>
85055+
85056+
<span class="k">for</span> <span class="n">s</span> <span class="k">in</span> <span class="n">staple</span> <span class="p">{</span>
85057+
<span class="kd">let</span> <span class="nv">remaining</span> <span class="p">=</span> <span class="n">x</span> <span class="o">-</span> <span class="n">s</span>
85058+
<span class="k">if</span> <span class="n">remaining</span> <span class="o">&gt;=</span> <span class="n">sortedDrinks</span><span class="p">.</span><span class="bp">first</span> <span class="p">??</span> <span class="mi">0</span> <span class="p">{</span>
85059+
<span class="kd">var</span> <span class="nv">left</span> <span class="p">=</span> <span class="mi">0</span>
85060+
<span class="kd">var</span> <span class="nv">right</span> <span class="p">=</span> <span class="n">sortedDrinks</span><span class="p">.</span><span class="bp">count</span> <span class="o">-</span> <span class="mi">1</span>
85061+
85062+
<span class="k">while</span> <span class="kr">left</span> <span class="o">&lt;</span> <span class="kr">right</span> <span class="p">{</span>
85063+
<span class="kd">let</span> <span class="nv">mid</span> <span class="p">=</span> <span class="p">(</span><span class="kr">left</span> <span class="o">+</span> <span class="kr">right</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span>
85064+
<span class="k">if</span> <span class="n">sortedDrinks</span><span class="p">[</span><span class="n">mid</span><span class="p">]</span> <span class="o">&lt;=</span> <span class="n">remaining</span> <span class="p">{</span>
85065+
<span class="kr">left</span> <span class="p">=</span> <span class="n">mid</span>
85066+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
85067+
<span class="kr">right</span> <span class="p">=</span> <span class="n">mid</span> <span class="o">-</span> <span class="mi">1</span>
85068+
<span class="p">}</span>
85069+
<span class="p">}</span>
85070+
<span class="n">result</span> <span class="p">=</span> <span class="p">(</span><span class="n">result</span> <span class="o">+</span> <span class="kr">left</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="n">mod</span>
85071+
<span class="p">}</span>
85072+
<span class="p">}</span>
85073+
<span class="k">return</span> <span class="n">result</span>
85074+
<span class="p">}</span>
85075+
<span class="p">}</span>
85076+
</code></pre></div></td></tr></table></div>
85077+
</div>
8502485078
</div>
8502585079
</div>
8502685080
<!-- solution:end -->
@@ -85054,6 +85108,11 @@ <h3 id="_3">方法一</h3>
8505485108

8505585109
<nav>
8505685110

85111+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
85112+
85113+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
85114+
</a>
85115+
8505785116
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8505885117

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

search/search_index.json

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

0 commit comments

Comments
 (0)