LeetCode 63. Unique Paths II in F#

URL

leetcode.com/problems/unique-paths-ii

Code

github.com/syohex/dotnet-study/blob/master/..

let uniquePathsWithObstacles (obstableGrid: int [,]) : int =
    let rows = Array2D.length1 obstableGrid
    let cols = Array2D.length2 obstableGrid

    let dp = Array2D.zeroCreate rows cols

    if obstableGrid[0, 0] = 1 then
        0
    else
        dp.[0, 0] <- 1

        for i in 0 .. rows - 1 do
            for j in 0 .. cols - 1 do
                if obstableGrid[i, j] = 0 then
                    if i >= 1 then
                        dp.[i, j] <- dp.[i - 1, j]

                    if j >= 1 then
                        dp.[i, j] <- dp.[i, j] + dp.[i, j - 1]

        dp.[rows - 1, cols - 1]