LeetCode 1035. Uncrossed Lines in F#

URL

Uncrossed Lines - LeetCode

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/1035/main.fsx

let maxUncrossedLines (nums1: int[]) (nums2: int[]) : int =
    let len1 = nums1.Length
    let len2 = nums2.Length

    let dp = Array2D.zeroCreate (len1 + 1) (len2 + 1)

    for i in 1..len1 do
        for j in 1..len2 do
            if nums1.[i - 1] = nums2.[j - 1] then
                dp.[i, j] <- 1 + dp.[i - 1, j - 1]
            else
                dp.[i, j] <- System.Math.Max(dp.[i - 1, j], dp.[i, j - 1])

    dp.[len1, len2]