Maximum triangle path sum: Difference between revisions

Content added Content deleted
(Erlang version)
m (Better use of pattern matching rules to avoid calling tl().)
Line 985: Line 985:


fold_row([], L) -> L;
fold_row([], L) -> L;
fold_row([A|_] = Last, [B|_] = Current) ->
fold_row([A|_] = Last, [B|Bs]) ->
[A+B | fold_rest(Last, tl(Current))].
[A+B | fold_rest(Last, Bs)].


fold_rest([A], [B]) -> [A+B];
fold_rest([A], [B]) -> [A+B];
fold_rest([A1,A2|_] = Prev, [B|Bs]) -> [B + max(A1,A2) | fold_rest(tl(Prev), Bs)].
fold_rest([A1 | [A2|_] = As], [B|Bs]) -> [B + max(A1,A2) | fold_rest(As, Bs)].
</lang>
</lang>
{{Out}}
{{Out}}