mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-30 12:46:11 -04:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
#!/usr/bin/python3
|
|
# mari von steinkirch @2013
|
|
# steinkirch at gmail
|
|
|
|
def lattice_paths(squares):
|
|
gridsize = squares+1
|
|
grid = [[0 for i in range(gridsize)] for j in range(gridsize)]
|
|
row, col = 0, 0
|
|
|
|
while col < gridsize:
|
|
while row < gridsize:
|
|
|
|
if row == 0 and col == 0:
|
|
grid[row][col] = 1
|
|
|
|
else:
|
|
if row == 0 and col != 0:
|
|
grid[row][col] += grid[row][col-1]
|
|
elif row != 0 and col == 0:
|
|
grid[row][col] += grid[row-1][col]
|
|
else:
|
|
grid[row][col] += grid[row][col-1] + grid[row-1][col]
|
|
|
|
row += 1
|
|
row = 0
|
|
col += 1
|
|
return grid[gridsize-1][gridsize-1]
|
|
|
|
|
|
def main():
|
|
import time
|
|
start = time.time()
|
|
|
|
assert(lattice_paths(2) == 6)
|
|
print(lattice_paths(20))
|
|
|
|
elapsed = (time.time() - start)
|
|
print('Tests Passed!\n It took %s seconds to run them.' % (elapsed))
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|