@@ -86073,7 +86073,7 @@ <h3 id="solution-1-dynamic-programming">Solution 1: Dynamic Programming</h3>
8607386073<p>Where <span class="arithmatex">\(\lceil x\rceil\)</span> represents rounding <span class="arithmatex">\(x\)</span> up. It should be noted that since we need to ensure that exactly <span class="arithmatex">\(j\)</span> rest times are skipped, we must have <span class="arithmatex">\(j\le i\)</span>; moreover, if <span class="arithmatex">\(j=0\)</span>, no rest time can be skipped.</p>
8607486074<p>Due to the possible precision error brought by floating-point operations and rounding up, we introduce a constant <span class="arithmatex">\(eps = 10^{-8}\)</span> to represent a very small positive real number. We subtract <span class="arithmatex">\(eps\)</span> before rounding the floating-point number, and finally, when comparing <span class="arithmatex">\(f[n][j]\)</span> and <span class="arithmatex">\(hoursBefore\)</span>, we need to add <span class="arithmatex">\(eps\)</span>.</p>
8607586075<p>The time complexity is <span class="arithmatex">\(O(n^2)\)</span>, and the space complexity is <span class="arithmatex">\(O(n^2)\)</span>, where <span class="arithmatex">\(n\)</span> is the number of roads.</p>
86076- <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">Python3 </label><label for="__tabbed_1_3">Java</label><label for="__tabbed_1_4"> C++</label><label for="__tabbed_1_5 ">Go</label><label for="__tabbed_1_6 ">TypeScript</label></div>
86076+ <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>
8607786077<div class="tabbed-content">
8607886078<div class="tabbed-block">
8607986079<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -86124,38 +86124,6 @@ <h3 id="solution-1-dynamic-programming">Solution 1: Dynamic Programming</h3>
8612486124<span class="normal">12</span>
8612586125<span class="normal">13</span>
8612686126<span class="normal">14</span>
86127- <span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="p">:</span>
86128- <span class="k">def</span><span class="w"> </span><span class="nf">minSkips</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dist</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">int</span><span class="p">],</span> <span class="n">speed</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">hoursBefore</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
86129- <span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span>
86130- <span class="n">f</span> <span class="o">=</span> <span class="p">[[</span><span class="n">inf</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)]</span>
86131- <span class="n">f</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
86132- <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">dist</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span>
86133- <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
86134- <span class="k">if</span> <span class="n">j</span> <span class="o"><</span> <span class="n">i</span><span class="p">:</span>
86135- <span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">],</span> <span class="p">((</span><span class="n">f</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">+</span> <span class="n">x</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="n">speed</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">speed</span><span class="p">)</span>
86136- <span class="k">if</span> <span class="n">j</span><span class="p">:</span>
86137- <span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">],</span> <span class="n">f</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="n">j</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">x</span><span class="p">)</span>
86138- <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
86139- <span class="k">if</span> <span class="n">f</span><span class="p">[</span><span class="n">n</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o"><=</span> <span class="n">hoursBefore</span> <span class="o">*</span> <span class="n">speed</span><span class="p">:</span>
86140- <span class="k">return</span> <span class="n">j</span>
86141- <span class="k">return</span> <span class="o">-</span><span class="mi">1</span>
86142- </code></pre></div></td></tr></table></div>
86143- </div>
86144- <div class="tabbed-block">
86145- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86146- <span class="normal"> 2</span>
86147- <span class="normal"> 3</span>
86148- <span class="normal"> 4</span>
86149- <span class="normal"> 5</span>
86150- <span class="normal"> 6</span>
86151- <span class="normal"> 7</span>
86152- <span class="normal"> 8</span>
86153- <span class="normal"> 9</span>
86154- <span class="normal">10</span>
86155- <span class="normal">11</span>
86156- <span class="normal">12</span>
86157- <span class="normal">13</span>
86158- <span class="normal">14</span>
8615986127<span class="normal">15</span>
8616086128<span class="normal">16</span>
8616186129<span class="normal">17</span>
0 commit comments