院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

数学パズル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