Difference between revisions of "Haskell Quiz/Maximum Sub-Array/Solution Jkramar"
Jump to navigation
Jump to search
m |
m |
||
Line 2: | Line 2: | ||
<haskell> |
<haskell> |
||
+ | maxSubArray :: (Num a, Ord a) => [a] -> [a] |
||
maxSubArray xs = drop from$take to xs where |
maxSubArray xs = drop from$take to xs where |
||
sumswithpos = zip (scanl (+) 0 xs) [0..] |
sumswithpos = zip (scanl (+) 0 xs) [0..] |
Revision as of 20:13, 19 November 2008
maxSubArray :: (Num a, Ord a) => [a] -> [a]
maxSubArray xs = drop from$take to xs where
sumswithpos = zip (scanl (+) 0 xs) [0..]
diff ((a,ai),(b,bi)) = (a-b,(bi,ai))
(from,to) = snd$maximum$map diff$zip sumswithpos$scanl1 min sumswithpos