LeetCode 406. Queue Reconstruction by Height in F#
URL
leetcode.com/problems/queue-reconstruction-..
Code
github.com/syohex/dotnet-study/blob/master/..
let reconstructQueue (people: (int * int) list) : (int * int) list =
let insert pos person queue =
if pos = 0 then
person :: queue
else
(List.take pos queue)
@ (person :: (List.skip pos queue))
let people' =
people
|> List.sortWith (fun (h1, t1) (h2, t2) ->
if h1 = h2 then
compare t1 t2
else
compare h2 h1)
people'
|> List.fold
(fun acc person ->
let (_, tallers) = person
insert tallers person acc)
[]