12 lines
327 B
Plaintext
12 lines
327 B
Plaintext
defmodule Greatest do
|
|
def subseq_sum(list) do
|
|
limit = length(list) - 1
|
|
ij = for i <- 0..limit, j <- i..limit, do: {i,j}
|
|
Enum.reduce(ij, {0, []}, fn {i,j},{max, subseq} ->
|
|
slice = Enum.slice(list, i..j)
|
|
sum = Enum.sum(slice)
|
|
if sum > max, do: {sum, slice}, else: {max, subseq}
|
|
end)
|
|
end
|
|
end
|