Longest increasing subsequence: Difference between revisions

Content added Content deleted
Line 459: Line 459:
lis :: Ord a => [a] -> [a]
lis :: Ord a => [a] -> [a]
lis lst = runST $ do
lis lst = runST $ do
pileTops <- newSTArray (1, length lst) []
let llst = length lst
pileTops <- newSTArray (min llst 1, lst) []
let bsearchPiles x len = aux 1 len where
let bsearchPiles x len = aux 1 len where
aux lo hi | lo > hi = return lo
aux lo hi | lo > hi = return lo