F. So finden Sie mithilfe der Rekursion einen Weg zur Heimat / von der Quelle zum Ziel
"XXXXXEX",
„X X“,
"XXXXXEX",
„X X X“,
„X X X“,
„X XXX X“,
„X X“,
„XSXXXXXX“
Finden Sie anhand dieser beiden Muster den Weg von der Quelle zum Ziel heraus
// const maze = [ // "XXXXXEX", // "X X", // "XSXXXXX" // ]; const maze = [ "XXXXXEX", "X X X", "X X X", "X XXX X", "X X", "XSXXXXXX" ]; const dir = [ [-1, 0], [1, 0], [0, -1], [0, 1] ]; visited = {}; path = []; const findPath = (row, col) => { //1. out of bound condition if (row < 0 || row >= maze.length || col < 0 || col >= maze[0].length) { return false; } //2. Already visited if (visited[`${row}_${col}`]) { return false; } // found road block if (maze[row][col] === 'X') { return false; } // found the End if (maze[row][col] === 'E') { path.push(`${row}_${col}`); return true; } path.push(`${row}_${col}`); visited[`${row}_${col}`] = true; for (let item of dir) { const [x, y] = item; if (findPath(row+x, col+y)) { return true; } } path.pop(); return false; }; findPath(5,1); // findPath(2,1); console.log(path) /* node /tmp/n2GEk3kzOo.js [ '5_1', '4_1', '4_2', '4_3', '4_4', '4_5', '3_5', '2_5', '1_5', '0_5' ] */
Das obige ist der detaillierte Inhalt vonRekursive schwere Probleme mit Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!