সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা N * N অর্ডারের একটি ম্যাট্রিক্সে নেয়। ম্যাট্রিক্সের দেয়ালগুলি 'W' দ্বারা চিহ্নিত করা হয়েছে এবং খালি অবস্থানগুলি '_' দ্বারা চিহ্নিত করা হয়েছে
আমরা যে কোন সময়ে চার দিকের যে কোন দিকে যেতে পারি। আমাদের ফাংশন সত্য হওয়া উচিত যদি আমরা শেষ [N - 1, N - 1] পর্যন্ত পৌঁছতে পারি, অন্যথায় মিথ্যা৷
উদাহরণ
নিম্নলিখিত কোড -
const maze = [ ['_', 'W', 'W', 'W'], ['_', 'W', 'W', 'W'], ['W', '_', '_', 'W'], ['W', 'W', 'W', '_'] ]; const canFindPath = (m = []) => { let h = m.length; let w = m[0].length; let queue = [[0, 0]]; let mark = (xx, yy) => { [[1, 0], [-1, 0], [0, 1], [0, -1], [0, 0]].map(p => { let [x, y] = [p[0]+xx, p[1]+yy]; if (0 <= x && x < w) { if (0 <= y && y < h) { if (m[y][x] === '.') { m[y][x] = '#'; queue.push([x, y]); } } } }); }; do { let p = queue.shift(); mark(...p); } while (queue.length); return m[h-1][w-1] !== '.'; }; console.log(canFindPath(maze));
আউটপুট
true