
Q. Comment trouver un chemin vers Accueil / Source vers destination en utilisant la récursivité
"XXXXEX",
"XX",
"XXXXEX",
"X X X",
"X X X",
"XXXXX",
"XX",
"XSXXXXXX"
À partir de ces 2 schémas découvrez le chemin de la Source à la destination
// 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' ] */
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Comment débloquer un téléphone Oppo si j'ai oublié le mot de passe
Que faire si l'utilisation du processeur est trop élevée
Comment résoudre le problème que les CSS ne peuvent pas être chargés
L'utilisation de déclarer dans Oracle
La fonction du relais intermédiaire
Liste de prix du niveau Douyin 1-75
Comment résoudre le problème selon lequel tous les dossiers ne peuvent soudainement pas être ouverts dans Win10
Comment supprimer un fichier sous Linux