[4Clojure]解题记录-#79

Triangle Minimal Path
 

Difficulty: Hard
Topics: graph-theory

 

Write a function which calculates the sum of the minimal path through a triangle. The triangle is represented as a collection of vectors. The path should start at the top of the triangle and move to an adjacent number on the next row until the bottom of the triangle is reached.
 
(= 7 (__ '([1]
              [2 4]
             [5 1 4]
            [2 3 4 5]))) ; 1->2->1->3
 
(= 20 (__ '([3]
                [2 4]
               [1 9 3]
              [9 9 2 4]
             [4 6 6 7 8]
            [5 7 3 5 1 4]))) ; 3->4->3->2->7->1
 
解长度:65
(fn [s](last (reduce #(map + (map min (rest %)(butlast %)) %2) (reverses))))
posted @ 2014-12-01 20:31  TomAndRainy  阅读(158)  评论(0编辑  收藏  举报