LeetCode 1572. Matrix Diagonal Sum in F#
URL
Matrix Diagonal Sum - LeetCode
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/1572/main.fsx
let diagonalSum (mat: int[,]) : int =
let rec diagonalSum' i n (mat: int[,]) acc =
if i = n then
if n % 2 = 0 then
acc
else
let half = n / 2
acc - mat.[half, half]
else
let acc' = acc + mat.[i, i] + mat.[n - 1 - i, i]
diagonalSum' (i + 1) n mat acc'
diagonalSum' 0 (Array2D.length1 mat) mat 0