Skip to content

Commit 5194833

Browse files
committed
deploy: 0db8d50
1 parent c92949d commit 5194833

File tree

4 files changed

+417
-4
lines changed

4 files changed

+417
-4
lines changed

lcp/2/index.html

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84643,7 +84643,7 @@ <h3 id="dfs">方法一:DFS + 数学</h3>
8464384643
<p>如果 $i = n - 1$,只有一个元素,那么它的值就是 $cont[i]$,分母为 $1$,返回 $[cont[i], 1]$。</p>
8464484644
<p>否则,我们递归调用 $dfs(i + 1)$,记返回值为 $[a, b]$,那么 $dfs(i)= 1 + \frac{1}{\frac{a}{b}}$,即 $dfs(i) = \frac{a \times cont[i] + b}{a}$,分子为 $x = a \times cont[i] + b$,分母为 $y = a$,我们求出 $x$ 和 $y$ 的最大公约数 $g$,最终返回 $[\frac{x}{g}, \frac{y}{g}]$。</p>
8464584645
<p>时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 为 $cont$ 的长度。</p>
84646-
<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">JavaScript</label></div>
84646+
<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">JavaScript</label><label for="__tabbed_1_7">Swift</label></div>
8464784647
<div class="tabbed-content">
8464884648
<div class="tabbed-block">
8464984649
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -84851,6 +84851,58 @@ <h3 id="dfs">方法一:DFS + 数学</h3>
8485184851
<span class="p">};</span>
8485284852
</code></pre></div></td></tr></table></div>
8485384853
</div>
84854+
<div class="tabbed-block">
84855+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
84856+
<span class="normal"> 2</span>
84857+
<span class="normal"> 3</span>
84858+
<span class="normal"> 4</span>
84859+
<span class="normal"> 5</span>
84860+
<span class="normal"> 6</span>
84861+
<span class="normal"> 7</span>
84862+
<span class="normal"> 8</span>
84863+
<span class="normal"> 9</span>
84864+
<span class="normal">10</span>
84865+
<span class="normal">11</span>
84866+
<span class="normal">12</span>
84867+
<span class="normal">13</span>
84868+
<span class="normal">14</span>
84869+
<span class="normal">15</span>
84870+
<span class="normal">16</span>
84871+
<span class="normal">17</span>
84872+
<span class="normal">18</span>
84873+
<span class="normal">19</span>
84874+
<span class="normal">20</span>
84875+
<span class="normal">21</span>
84876+
<span class="normal">22</span>
84877+
<span class="normal">23</span>
84878+
<span class="normal">24</span>
84879+
<span class="normal">25</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>
84880+
<span class="kd">private</span> <span class="kd">var</span> <span class="nv">cont</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span> <span class="p">=</span> <span class="p">[]</span>
84881+
84882+
<span class="kd">func</span> <span class="nf">fraction</span><span class="p">(</span><span class="kc">_</span> <span class="n">cont</span><span class="p">:</span> <span class="p">[</span><span class="nb">Int</span><span class="p">])</span> <span class="p">-&gt;</span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span> <span class="p">{</span>
84883+
<span class="kc">self</span><span class="p">.</span><span class="n">cont</span> <span class="p">=</span> <span class="n">cont</span>
84884+
<span class="k">return</span> <span class="n">dfs</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
84885+
<span class="p">}</span>
84886+
84887+
<span class="kd">private</span> <span class="kd">func</span> <span class="nf">dfs</span><span class="p">(</span><span class="kc">_</span> <span class="n">i</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="p">[</span><span class="nb">Int</span><span class="p">]</span> <span class="p">{</span>
84888+
<span class="k">if</span> <span class="n">i</span> <span class="p">==</span> <span class="n">cont</span><span class="p">.</span><span class="bp">count</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">{</span>
84889+
<span class="k">return</span> <span class="p">[</span><span class="n">cont</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="mi">1</span><span class="p">]</span>
84890+
<span class="p">}</span>
84891+
<span class="kd">let</span> <span class="nv">next</span> <span class="p">=</span> <span class="n">dfs</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
84892+
<span class="kd">let</span> <span class="nv">a</span> <span class="p">=</span> <span class="n">next</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
84893+
<span class="kd">let</span> <span class="nv">b</span> <span class="p">=</span> <span class="n">next</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
84894+
<span class="kd">let</span> <span class="nv">x</span> <span class="p">=</span> <span class="n">a</span> <span class="o">*</span> <span class="n">cont</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">b</span>
84895+
<span class="kd">let</span> <span class="nv">y</span> <span class="p">=</span> <span class="n">a</span>
84896+
<span class="kd">let</span> <span class="nv">g</span> <span class="p">=</span> <span class="n">gcd</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
84897+
<span class="k">return</span> <span class="p">[</span><span class="n">x</span> <span class="o">/</span> <span class="n">g</span><span class="p">,</span> <span class="n">y</span> <span class="o">/</span> <span class="n">g</span><span class="p">]</span>
84898+
<span class="p">}</span>
84899+
84900+
<span class="kd">private</span> <span class="kd">func</span> <span class="nf">gcd</span><span class="p">(</span><span class="kc">_</span> <span class="n">a</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">b</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>
84901+
<span class="k">return</span> <span class="n">b</span> <span class="p">==</span> <span class="mi">0</span> <span class="p">?</span> <span class="n">a</span> <span class="p">:</span> <span class="n">gcd</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="n">a</span> <span class="o">%</span> <span class="n">b</span><span class="p">)</span>
84902+
<span class="p">}</span>
84903+
<span class="p">}</span>
84904+
</code></pre></div></td></tr></table></div>
84905+
</div>
8485484906
</div>
8485584907
</div>
8485684908
<!-- solution:end -->
@@ -84884,6 +84936,11 @@ <h3 id="dfs">方法一:DFS + 数学</h3>
8488484936

8488584937
<nav>
8488684938

84939+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
84940+
84941+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
84942+
</a>
84943+
8488784944
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8488884945

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

lcp/3/index.html

Lines changed: 84 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84650,7 +84650,7 @@ <h3 id="_3">方法一:哈希表</h3>
8465084650
<p>我们遍历所有障碍点 $(a, b)$,如果 $a \gt x$ 或者 $b \gt y$,说明机器人不会经过该障碍点,跳过即可。否则,我们将 $(x, y)$ 分别减去 $k$ 倍 $(i, j)$ 的偏移量,其中 $k = \min(\lfloor a / i \rfloor, \lfloor b / j \rfloor)$,如果 $(a, b)$ 在 $vis$ 中,说明机器人会经过该障碍点,返回 <code>false</code>。</p>
8465184651
<p>否则,遍历结束后,返回 <code>true</code>。</p>
8465284652
<p>时间复杂度 $O(m + n)$,空间复杂度 $O(m)$。其中 $m$ 和 $n$ 分别是指令 $command$ 和障碍数组 $obstacles$ 的长度。</p>
84653-
<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>
84653+
<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>
8465484654
<div class="tabbed-content">
8465584655
<div class="tabbed-block">
8465684656
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -84938,6 +84938,84 @@ <h3 id="_3">方法一:哈希表</h3>
8493884938
<span class="p">}</span>
8493984939
</code></pre></div></td></tr></table></div>
8494084940
</div>
84941+
<div class="tabbed-block">
84942+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
84943+
<span class="normal"> 2</span>
84944+
<span class="normal"> 3</span>
84945+
<span class="normal"> 4</span>
84946+
<span class="normal"> 5</span>
84947+
<span class="normal"> 6</span>
84948+
<span class="normal"> 7</span>
84949+
<span class="normal"> 8</span>
84950+
<span class="normal"> 9</span>
84951+
<span class="normal">10</span>
84952+
<span class="normal">11</span>
84953+
<span class="normal">12</span>
84954+
<span class="normal">13</span>
84955+
<span class="normal">14</span>
84956+
<span class="normal">15</span>
84957+
<span class="normal">16</span>
84958+
<span class="normal">17</span>
84959+
<span class="normal">18</span>
84960+
<span class="normal">19</span>
84961+
<span class="normal">20</span>
84962+
<span class="normal">21</span>
84963+
<span class="normal">22</span>
84964+
<span class="normal">23</span>
84965+
<span class="normal">24</span>
84966+
<span class="normal">25</span>
84967+
<span class="normal">26</span>
84968+
<span class="normal">27</span>
84969+
<span class="normal">28</span>
84970+
<span class="normal">29</span>
84971+
<span class="normal">30</span>
84972+
<span class="normal">31</span>
84973+
<span class="normal">32</span>
84974+
<span class="normal">33</span>
84975+
<span class="normal">34</span>
84976+
<span class="normal">35</span>
84977+
<span class="normal">36</span>
84978+
<span class="normal">37</span>
84979+
<span class="normal">38</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>
84980+
<span class="kd">func</span> <span class="nf">robot</span><span class="p">(</span><span class="kc">_</span> <span class="n">command</span><span class="p">:</span> <span class="nb">String</span><span class="p">,</span> <span class="kc">_</span> <span class="n">obstacles</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="kc">_</span> <span class="n">y</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>
84981+
<span class="kd">var</span> <span class="nv">visited</span><span class="p">:</span> <span class="n">Set</span><span class="o">&lt;</span><span class="p">[</span><span class="nb">Int</span><span class="p">]</span><span class="o">&gt;</span> <span class="p">=</span> <span class="p">[]</span>
84982+
<span class="kd">var</span> <span class="nv">i</span> <span class="p">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">j</span> <span class="p">=</span> <span class="mi">0</span>
84983+
<span class="n">visited</span><span class="p">.</span><span class="bp">insert</span><span class="p">([</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">])</span>
84984+
84985+
<span class="k">for</span> <span class="n">c</span> <span class="k">in</span> <span class="n">command</span> <span class="p">{</span>
84986+
<span class="k">if</span> <span class="n">c</span> <span class="p">==</span> <span class="s">&quot;U&quot;</span> <span class="p">{</span>
84987+
<span class="n">j</span> <span class="o">+=</span> <span class="mi">1</span>
84988+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
84989+
<span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
84990+
<span class="p">}</span>
84991+
<span class="n">visited</span><span class="p">.</span><span class="bp">insert</span><span class="p">([</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">])</span>
84992+
<span class="p">}</span>
84993+
84994+
<span class="kd">func</span> <span class="nf">canReach</span><span class="p">(</span><span class="kc">_</span> <span class="n">targetX</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="kc">_</span> <span class="n">targetY</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>
84995+
<span class="kd">let</span> <span class="nv">k</span> <span class="p">=</span> <span class="bp">min</span><span class="p">(</span><span class="n">targetX</span> <span class="o">/</span> <span class="n">i</span><span class="p">,</span> <span class="n">targetY</span> <span class="o">/</span> <span class="n">j</span><span class="p">)</span>
84996+
<span class="k">return</span> <span class="n">visited</span><span class="p">.</span><span class="bp">contains</span><span class="p">([</span><span class="n">targetX</span> <span class="o">-</span> <span class="n">k</span> <span class="o">*</span> <span class="n">i</span><span class="p">,</span> <span class="n">targetY</span> <span class="o">-</span> <span class="n">k</span> <span class="o">*</span> <span class="n">j</span><span class="p">])</span>
84997+
<span class="p">}</span>
84998+
84999+
<span class="k">if</span> <span class="o">!</span><span class="n">canReach</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span> <span class="p">{</span>
85000+
<span class="k">return</span> <span class="kc">false</span>
85001+
<span class="p">}</span>
85002+
85003+
<span class="k">for</span> <span class="n">obstacle</span> <span class="k">in</span> <span class="n">obstacles</span> <span class="p">{</span>
85004+
<span class="kd">let</span> <span class="nv">obstacleX</span> <span class="p">=</span> <span class="n">obstacle</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
85005+
<span class="kd">let</span> <span class="nv">obstacleY</span> <span class="p">=</span> <span class="n">obstacle</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
85006+
<span class="k">if</span> <span class="n">obstacleX</span> <span class="o">&gt;</span> <span class="n">x</span> <span class="o">||</span> <span class="n">obstacleY</span> <span class="o">&gt;</span> <span class="n">y</span> <span class="p">{</span>
85007+
<span class="k">continue</span>
85008+
<span class="p">}</span>
85009+
<span class="k">if</span> <span class="n">canReach</span><span class="p">(</span><span class="n">obstacleX</span><span class="p">,</span> <span class="n">obstacleY</span><span class="p">)</span> <span class="p">{</span>
85010+
<span class="k">return</span> <span class="kc">false</span>
85011+
<span class="p">}</span>
85012+
<span class="p">}</span>
85013+
85014+
<span class="k">return</span> <span class="kc">true</span>
85015+
<span class="p">}</span>
85016+
<span class="p">}</span>
85017+
</code></pre></div></td></tr></table></div>
85018+
</div>
8494185019
</div>
8494285020
</div>
8494385021
<!-- solution:end -->
@@ -84971,6 +85049,11 @@ <h3 id="_3">方法一:哈希表</h3>
8497185049

8497285050
<nav>
8497385051

85052+
<a href="https://github.com/klever34" class="md-author" title="@klever34">
85053+
85054+
<img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
85055+
</a>
85056+
8497485057
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
8497585058

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

0 commit comments

Comments
 (0)