LeetCode 120. Triangle in F#
URL
leetcode.com/problems/triangle
Code
github.com/syohex/dotnet-study/blob/master/..
open System
let minimumTotal (triangle: int list list) : int =
let rec minimumTotal' triangle (prev: int []) =
match triangle with
| [] -> prev |> Array.min
| h :: t ->
let sum =
h
|> List.mapi (fun i n ->
if i = 0 then
n + prev.[0]
elif i = prev.Length then
n + prev.[prev.Length - 1]
else
Math.Min(prev.[i - 1], prev.[i]) + n)
|> List.toArray
minimumTotal' t sum
minimumTotal' triangle.Tail (triangle.Head |> List.toArray)