@@ -75297,7 +75297,7 @@ <h3 id="solution-1-dfs-depth-first-search">Solution 1: DFS (Depth-First Search)<
75297
75297
<p>We can use depth-first search to solve this problem. We start from the top left corner and move right or down until we reach the bottom right corner. If at some step, we find that the current position is an obstacle, or the current position is already in the path, then we return. Otherwise, we add the current position to the path and mark the current position as visited, then continue to move right or down.</p>
75298
75298
<p>If we can finally reach the bottom right corner, then we have found a feasible path, otherwise, it means there is no feasible path.</p>
75299
75299
<p>The time complexity is $O(m \times n)$, and the space complexity is $O(m \times n)$. Here, $m$ and $n$ are the number of rows and columns of the grid, respectively.</p>
75300
- <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">Rust</label></div>
75300
+ <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">Swift </label></div>
75301
75301
<div class="tabbed-content">
75302
75302
<div class="tabbed-block">
75303
75303
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -75571,6 +75571,60 @@ <h3 id="solution-1-dfs-depth-first-search">Solution 1: DFS (Depth-First Search)<
75571
75571
<span class="p">}</span>
75572
75572
</code></pre></div></td></tr></table></div>
75573
75573
</div>
75574
+ <div class="tabbed-block">
75575
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75576
+ <span class="normal"> 2</span>
75577
+ <span class="normal"> 3</span>
75578
+ <span class="normal"> 4</span>
75579
+ <span class="normal"> 5</span>
75580
+ <span class="normal"> 6</span>
75581
+ <span class="normal"> 7</span>
75582
+ <span class="normal"> 8</span>
75583
+ <span class="normal"> 9</span>
75584
+ <span class="normal">10</span>
75585
+ <span class="normal">11</span>
75586
+ <span class="normal">12</span>
75587
+ <span class="normal">13</span>
75588
+ <span class="normal">14</span>
75589
+ <span class="normal">15</span>
75590
+ <span class="normal">16</span>
75591
+ <span class="normal">17</span>
75592
+ <span class="normal">18</span>
75593
+ <span class="normal">19</span>
75594
+ <span class="normal">20</span>
75595
+ <span class="normal">21</span>
75596
+ <span class="normal">22</span>
75597
+ <span class="normal">23</span>
75598
+ <span class="normal">24</span>
75599
+ <span class="normal">25</span>
75600
+ <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>
75601
+ <span class="kd">private</span> <span class="kd">var</span> <span class="nv">ans</span> <span class="p">=</span> <span class="p">[[</span><span class="nb">Int</span><span class="p">]]()</span>
75602
+ <span class="kd">private</span> <span class="kd">var</span> <span class="nv">g</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>
75603
+ <span class="kd">private</span> <span class="kd">var</span> <span class="nv">m</span><span class="p">:</span> <span class="nb">Int</span> <span class="p">=</span> <span class="mi">0</span>
75604
+ <span class="kd">private</span> <span class="kd">var</span> <span class="nv">n</span><span class="p">:</span> <span class="nb">Int</span> <span class="p">=</span> <span class="mi">0</span>
75605
+
75606
+ <span class="kd">func</span> <span class="nf">pathWithObstacles</span><span class="p">(</span><span class="kc">_</span> <span class="n">obstacleGrid</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><span class="nb">Int</span><span class="p">]]</span> <span class="p">{</span>
75607
+ <span class="n">g</span> <span class="p">=</span> <span class="n">obstacleGrid</span>
75608
+ <span class="n">m</span> <span class="p">=</span> <span class="n">g</span><span class="p">.</span><span class="bp">count</span>
75609
+ <span class="n">n</span> <span class="p">=</span> <span class="n">g</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="bp">count</span>
75610
+ <span class="k">return</span> <span class="n">dfs</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="p">?</span> <span class="n">ans</span> <span class="p">:</span> <span class="p">[]</span>
75611
+ <span class="p">}</span>
75612
+
75613
+ <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="kc">_</span> <span class="n">j</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">-></span> <span class="nb">Bool</span> <span class="p">{</span>
75614
+ <span class="k">if</span> <span class="n">i</span> <span class="o">>=</span> <span class="n">m</span> <span class="o">||</span> <span class="n">j</span> <span class="o">>=</span> <span class="n">n</span> <span class="o">||</span> <span class="n">g</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="mi">1</span> <span class="p">{</span>
75615
+ <span class="k">return</span> <span class="kc">false</span>
75616
+ <span class="p">}</span>
75617
+ <span class="n">ans</span><span class="p">.</span><span class="n">append</span><span class="p">([</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">])</span>
75618
+ <span class="n">g</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="mi">1</span>
75619
+ <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="p">==</span> <span class="n">m</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">&&</span> <span class="n">j</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="o">||</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> <span class="n">j</span><span class="p">)</span> <span class="o">||</span> <span class="n">dfs</span><span class="p">(</span><span class="n">i</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="p">{</span>
75620
+ <span class="k">return</span> <span class="kc">true</span>
75621
+ <span class="p">}</span>
75622
+ <span class="n">ans</span><span class="p">.</span><span class="bp">removeLast</span><span class="p">()</span>
75623
+ <span class="k">return</span> <span class="kc">false</span>
75624
+ <span class="p">}</span>
75625
+ <span class="p">}</span>
75626
+ </code></pre></div></td></tr></table></div>
75627
+ </div>
75574
75628
</div>
75575
75629
</div>
75576
75630
<!-- end -->
@@ -75602,6 +75656,11 @@ <h3 id="solution-1-dfs-depth-first-search">Solution 1: DFS (Depth-First Search)<
75602
75656
75603
75657
<nav>
75604
75658
75659
+ <a href="https://github.com/klever34" class="md-author" title="@klever34">
75660
+
75661
+ <img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
75662
+ </a>
75663
+
75605
75664
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
75606
75665
75607
75666
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments