Maximum triangle path sum: Difference between revisions

m
→‎{{header|Sidef}}: modified code to work with the latest version of Sidef
(Added the Rust language)
m (→‎{{header|Sidef}}: modified code to work with the latest version of Sidef)
Line 1,361:
=={{header|Sidef}}==
{{trans|Perl}}
 
Iterative solution:
<lang ruby>var sum = [0];
 
Line 1,367 ⟶ 1,369:
sum = [
x.first + sum.first,
1 ... x.len-2 -> map{|i| x[i] + [sum[i-1, i]].max}...,
x.last + sum.last,
];
Line 1,373 ⟶ 1,375:
 
say sum.max;</lang>
 
Recursive solution:
<lang ruby>var triangle = ARGF.slurp.lines.map{.words.map{.to_i}};
 
func max_value(i=0, j=0) is cached {
i == triangle.len && return 0;
triangle[i][j] + [max_value(i+1, j), max_value(i+1, j+1)].max;
}
 
say max_value();</lang>
{{out}}
<pre>% sidef maxpath.sf triangle.txt
2,756

edits