There is a ball in a maze with empty spaces (represented as 0) and walls (represented as 1). The ball can go through the empty spaces by rolling up, down, left or right, but it won't stop rolling until hitting a wall.

When the ball stops, it could choose the next direction to roll. Given the m x n maze, the ball's start position and the destination, where start = [startrow, startcol] and destination = [destinationrow, destinationcol], return true if the ball can stop at the destination, otherwise return false.

You may assume that the borders of the maze are all walls.

Input & Output

Example 1 — Path Exists
$ Input: maze = [[0,0,1,0,0],[0,0,0,0,0],[0,0,0,1,0],[1,1,0,1,1],[0,0,0,0,0]], start = [0,4], destination = [4,4]
Output: true
💡 Note: Ball starts at (0,4), rolls down to (4,4), then rolls right to reach destination (4,4)
Example 2 — No Path
$ Input: maze = [[0,0,1,0,0],[0,0,0,0,0],[0,0,0,1,0],[1,1,0,1,1],[0,0,0,0,0]], start = [0,4], destination = [3,2]
Output: false
💡 Note: Ball cannot stop at (3,2) because it's blocked by walls and there's no path that allows stopping there
Example 3 — Start Equals Destination
$ Input: maze = [[0,0,0,0,0],[1,1,0,0,1],[0,0,0,0,0],[0,1,0,0,1],[0,1,0,0,0]], start = [0,0], destination = [0,0]
Output: true
💡 Note: Ball is already at destination, so return true immediately

Constraints

  • m == maze.length
  • n == maze[i].length
  • 1 ≤ m, n ≤ 100
  • maze[i][j] is 0 or 1
  • start.length == 2
  • destination.length == 2
  • 0 ≤ startrow, destinationrow < m
  • 0 ≤ startcol, destinationcol < n
  • Both the ball and the destination exist in an empty space, and they will not be in the same position initially
  • The maze contains at least 2 empty spaces

Visualization

Tap to expand
The Maze: Ball Rolling PhysicsStartGoal■ = Wall (1)□ = Empty (0)● = Ball positionRolls downBall Movement Rules:• Rolls until hitting wall• Can only stop at walls• Choose new direction after stoppingCan ball reach destination? → true
Understanding the Visualization
1
Input
5x5 maze with start [0,4] and destination [4,4]
2
Process
Ball rolls in directions until hitting walls
3
Output
Return true if ball can stop at destination
Key Takeaway
🎯 Key Insight: The ball only stops when hitting a wall, making this a graph traversal problem between stopping positions
Asked in
Google 42 Facebook 38 Amazon 35 Microsoft 28
89.2K Views
Medium Frequency
~25 min Avg. Time
1.5K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen