LeetCode 746. Min Cost Climbing Stairs in F#

URL

Min Cost Climbing Stairs - LeetCode

Code

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

open System

let minCostClimingStairs (cost: int list) : int =
    let rec minCostClimingStairs' cost (prev2: int) prev1 =
        match cost with
        | [] -> Math.Min(prev2, prev1)
        | h :: t ->
            let v = Math.Min(h + prev1, h + prev2)
            minCostClimingStairs' t prev1 v

    match cost with
    | prev2 :: prev1 :: t -> minCostClimingStairs' t prev2 prev1
    | _ -> failwith "never reach here"