@@ -86073,7 +86073,7 @@ <h3 id="solution-1-dynamic-programming">Solution 1: Dynamic Programming</h3>
86073
86073
<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>
86074
86074
<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>
86075
86075
<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>
86077
86077
<div class="tabbed-content">
86078
86078
<div class="tabbed-block">
86079
86079
<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>
86124
86124
<span class="normal">12</span>
86125
86125
<span class="normal">13</span>
86126
86126
<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>
86159
86127
<span class="normal">15</span>
86160
86128
<span class="normal">16</span>
86161
86129
<span class="normal">17</span>
0 commit comments