LeetCode 64. Minimum Path Sum in F#
URL
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/0064/main.fsx
open System
let minPathSum (grid: int[,]) : int =
let rows, cols = Array2D.length1 grid, Array2D.length2 grid
let dp = Array2D.init rows cols (fun _ _ -> Int32.MaxValue)
dp.[0, 0] <- grid.[0, 0]
for i in 0 .. (rows - 1) do
for j in 0 .. (cols - 1) do
if i <> 0 then
dp.[i, j] <- grid.[i, j] + dp.[i - 1, j]
if j <> 0 then
dp.[i, j] <- Math.Min(dp.[i, j], grid.[i, j] + dp.[i, j - 1])
dp.[rows - 1, cols - 1]