数学パズルQ9
解説が雑すぎてよくわからん。
とりあえず、格子状の最短経路問題について
def shortGrid1(row, col) ary = Array.new(row + 1).map { Array.new(col + 1, 0) } ary[0][0] = 1 (0..row).each do |r| (0..col).each do |c| if (r -1 >= 0) ary[r][c] += ary[r - 1][c] end if (c - 1 >= 0) ary[r][c] += ary[r][c - 1] end end end ary[row][col] end def shortGrid2(row, col) return 1 if row == 0 and col == 0 return 0 if row < 0 or col < 0 shortGrid(row - 1, col) + shortGrid(row, col - 1) end