Skip to content

Instantly share code, notes, and snippets.

@leeacto
Last active December 19, 2015 00:49
Show Gist options
  • Save leeacto/5870968 to your computer and use it in GitHub Desktop.
Save leeacto/5870968 to your computer and use it in GitHub Desktop.
def paths(row, col)
return 1 if row == 3 && col == 3
return 0 if row > 3 || col > 3
return paths(row + 1, col) + paths(row, col + 1)
end
def new_path(tot_row, tot_col)
curr_row = 0
curr_col = 0
known = {}
#Get all values in each row
until curr_col > tot_row do
#Get all values in column
until curr_row > tot_row do
if curr_col == 0
known[[curr_row,curr_col]] = 1
elsif curr_row == curr_col
val = known[[curr_row,curr_col - 1]] * 2
known[[curr_row,curr_col]] = val
else
val = known[[curr_row,curr_col - 1]] + known[[curr_row - 1,curr_col]]
known[[curr_row,curr_col]] = val
end
curr_row += 1
end
curr_col += 1
curr_row = curr_col
end
known[[tot_row, tot_col]]
end
st = Time.new
puts new_path(20,20).inspect
en = Time.new - st
puts en
@jfarmer
Copy link

jfarmer commented Jun 26, 2013

def paths(row, col)
  return 1 if row == 19 && col == 19
  return 0 if row > 19 || col > 19
  return paths(row + 1, col) + paths(row, col + 1)
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment