Implement an optimized solution with your memoization strategy of choice.
When using GitHub mode, paste your repository URL below and click Save URL to store it. The saved URL will be automatically included with every message you send until you choose to clear it. Learn more
Implement an optimized solution with your memoization strategy of choice.
Here's a solution using a Map for memoization:
function chaosInTheGrid(grid) {
const rows = grid.length;
const cols = grid[0].length;
const cache = new Map();
function pathsToCoord(row, col) {
if (row === 0 || col === 0) {
return 1;
}
const key = `${row} ${col}`;
if (cache.has(key)) {
return cache.get(key);
}
const paths = pathsToCoord(row - 1, col) + pathsToCoord(row, col - 1);
cache.set(key, paths);
return paths;
}
return pathsToCoord(rows - 1, cols - 1);
}
And here's a solution using a nested array as a cache.
function chaosInTheGrid(grid) {
const rows = grid.length;
const cols = grid[0].length;
// Initialize a cache as a nested array filled with zeroes
const cache = new Array(rows).fill().map(() => new Array(cols).fill(0));
function pathsToCoord(row, col) {
if (row === 0 || col === 0) {
return 1;
}
if (cache[row][col] !== 0) {
return cache[row][col];
}
cache[row][col] = pathsToCoord(row - 1, col) + pathsToCoord(row, col - 1);
return cache[row][col];
}
return pathsToCoord(rows - 1, cols - 1);
}
Hi! I'm LSBot. I can help you think through the selected exercise by giving you hints and guidance without revealing the solution. Your code from the editor will be automatically detected. Want to know more? Refer to the LSBot User Guide .
Submit your solution for LSBot review. Hi! I'm LSBot. Your code from the editor will be automatically detected. I'll review your solution and provide feedback to help you improve. Ask questions about your solution or request a comprehensive code review. Want to know more? Refer to the LSBot User Guide .