Class Solution
java.lang.Object
g1001_1100.s1036_escape_a_large_maze.Solution
1036 - Escape a Large Maze.<p>Hard</p>
<p>There is a 1 million by 1 million grid on an XY-plane, and the coordinates of each grid square are <code>(x, y)</code>.</p>
<p>We start at the <code>source = [s<sub>x</sub>, s<sub>y</sub>]</code> square and want to reach the <code>target = [t<sub>x</sub>, t<sub>y</sub>]</code> square. There is also an array of <code>blocked</code> squares, where each <code>blocked[i] = [x<sub>i</sub>, y<sub>i</sub>]</code> represents a blocked square with coordinates <code>(x<sub>i</sub>, y<sub>i</sub>)</code>.</p>
<p>Each move, we can walk one square north, east, south, or west if the square is <strong>not</strong> in the array of <code>blocked</code> squares. We are also not allowed to walk outside of the grid.</p>
<p>Return <code>true</code> <em>if and only if it is possible to reach the</em> <code>target</code> <em>square from the</em> <code>source</code> <em>square through a sequence of valid moves</em>.</p>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> blocked = [[0,1],[1,0]], source = [0,0], target = [0,2]</p>
<p><strong>Output:</strong> false</p>
<p><strong>Explanation:</strong> The target square is inaccessible starting from the source square because we cannot move.</p>
<p>We cannot move north or east because those squares are blocked.</p>
<p>We cannot move south or west because we cannot go outside of the grid.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> blocked = [], source = [0,0], target = [999999,999999]</p>
<p><strong>Output:</strong> true</p>
<p><strong>Explanation:</strong> Because there are no blocked cells, it is possible to reach the target square.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>0 <= blocked.length <= 200</code></li>
<li><code>blocked[i].length == 2</code></li>
<li><code>0 <= x<sub>i</sub>, y<sub>i</sub> < 10<sup>6</sup></code></li>
<li><code>source.length == target.length == 2</code></li>
<li><code>0 <= s<sub>x</sub>, s<sub>y</sub>, t<sub>x</sub>, t<sub>y</sub> < 10<sup>6</sup></code></li>
<li><code>source != target</code></li>
<li>It is guaranteed that <code>source</code> and <code>target</code> are not blocked.</li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
isEscapePossible
(int[][] blocked, int[] source, int[] target)
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
isEscapePossible
public boolean isEscapePossible(int[][] blocked, int[] source, int[] target)
-