LeetCode 867. Transpose Matrix in F#

URL

https://leetcode.com/problems/transpose-matrix/description/?envType=daily-question&envId=2023-12-10

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/challenge/202312/transpose_matrix/main.fsx

let transpose (matrix: int[,]) : int[,] =
    let rows, cols = Array2D.length1 matrix, Array2D.length2 matrix

    let rec transpose' i j (ret: int[,]) =
        if i >= cols then
            ret
        elif j >= rows then
            transpose' (i + 1) 0 ret
        else
            ret.[i, j] <- matrix.[j, i]
            transpose' i (j + 1) ret

    let ret = Array2D.zeroCreate cols rows
    transpose' 0 0 ret