Rat in a Maze

Suppose we have a matrix with size N*N, and each position of the matrix is a block. The position (or block) can be free (value 1) or it can be blocked (value 0), as shown in the following diagram, where S is source and D is destination:

The matrix is the maze and the goal is for the "rat" to start at position [0][0] and go to position [n-1][n-1] (destination). The rat can move in two directions: vertically or horizontally in any position that is not blocked. 

Let's start declaring the basic structure of our algorithm, as follows:

export function ratInAMaze(maze) {  const solution = []; for (let i = 0; i < maze.length; i++) { // ...

Get Learning JavaScript Data Structures and Algorithms - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.