Problem 15
Lattice paths
Starting in the top left corner of a 2×2 grid, and only being able to move to the right and down, there are exactly 6 routes to the bottom right corner.
How many such routes are there through a 20×20 grid?
I initially started to do the brute force calculation. From top-left to bottom-right step by step ( grid size * 2 ) but that is brutal on the PC even on step 20.
Then there is this solution starting from the back right-bottom to top-left each cell has two points to move backwards.
Solution:
var gridSize = 20;
var pathSize = gridSize * 2; // due to the rules of only right and down movement
var grid = {};
for( var cell = 0; cell < gridSize; cell++ )
{
grid[cell+"x"+gridSize] = 1;
grid[gridSize+"x"+cell] = 1;
}
for( var row = gridSize-1; row >= 0; row-- )
{
for( var cell = gridSize-1; cell >= 0; cell-- )
{
grid[row+'x'+cell] = grid[(row+1)+"x"+cell] + grid[row+"x"+(cell+1)];
}
}
console.log( grid['0x0'] );