解题思路
如果到目前为止你的过去是负担,那就放下吧,每天都是新的开始~
如果到目前为止你的过去是正担,那就带上吧,试试找到自己人生的最大子序和吧~(即自己相对提升最大的一段时间,我希望是现在也是未来)
代码
-spec max_sub_array(Nums :: [integer()]) -> integer().
max_sub_array(Nums = [NumH | NumsT]) ->
do_max_sub_array(NumsT, #{nums => [NumH]}).
do_max_sub_array([Num | T], Args = #{nums := Nums = [PreSum | _]}) ->
Sum = case PreSum >= 0 of
true ->
Num + PreSum;
_ ->
Num
end,
do_max_sub_array(T, Args#{nums := [Sum | Nums]});
do_max_sub_array([], _Args = #{nums := Nums}) ->
lists:max(Nums).