September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
27
Task/Equilibrium-index/Haskell/equilibrium-index-4.hs
Normal file
27
Task/Equilibrium-index/Haskell/equilibrium-index-4.hs
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
equilibriumIndices :: [Int] -> [Int]
|
||||
equilibriumIndices xs =
|
||||
foldr
|
||||
(\(x, y, i) a ->
|
||||
(if x == y
|
||||
then i : a
|
||||
else a))
|
||||
[]
|
||||
(zip3
|
||||
(scanl1 (+) xs) -- Sums from the left
|
||||
(scanr1 (+) xs) -- Sums from the right
|
||||
[0 ..] -- Indices
|
||||
)
|
||||
|
||||
-- TEST -----------------------------------------------------------------------
|
||||
main :: IO ()
|
||||
main =
|
||||
mapM_
|
||||
print
|
||||
(equilibriumIndices <$>
|
||||
[ [-7, 1, 5, 2, -4, 3, 0]
|
||||
, [2, 4, 6]
|
||||
, [2, 9, 2]
|
||||
, [1, -1, 1, -1, 1, -1, 1]
|
||||
, [1]
|
||||
, []
|
||||
])
|
||||
Loading…
Add table
Add a link
Reference in a new issue