LeetCode 703. Kth Largest Element in a Stream in F#
URL
Kth Largest Element in a Stream - LeetCode
Code
type KthLargest =
{ nums: int list
k: int }
static member init (k: int) (nums: int list) : KthLargest =
let nums' = List.sort nums |> List.rev |> List.take k
{ nums = nums'; k = k }
static member add (num: int) (k: KthLargest) : (int * KthLargest) =
let nums' = (num :: k.nums) |> List.sort |> List.rev |> List.take k.k
List.last nums', { k with nums = nums' }