LeetCode 871. Minimum Number of Refueling Stops in F#
URL
leetcode.com/problems/minimum-number-of-ref..
Code
github.com/syohex/dotnet-study/blob/master/..
let minRefuelStops (target: int) (startFuel: int) (stations: (int * int) []) : int =
let len = stations.Length
let dp = Array.zeroCreate (len + 1)
dp.[0] <- startFuel
for i in 0 .. (len - 1) do
for j in seq { 0..i } |> Seq.rev do
if dp.[j] >= fst stations.[i] then
dp.[j + 1] <- System.Math.Max(dp.[j + 1], dp.[j] + (snd stations.[i]))
match dp
|> Array.mapi (fun i v -> i, v)
|> Array.tryFind (fun (_, v) -> v >= target)
with
| None -> -1
| Some ((i, _)) -> i