Water collected between towers: Difference between revisions

Content added Content deleted
(added Scheme example)
(updated Scheme version to be more efficient)
Line 1,068: Line 1,068:


(define (total-collected chart)
(define (total-collected chart)
(define (highest-right vals)
(define (highest-left vals curr)
(if (null? (cdr vals))
(if (null? vals)
'(0)
(list curr)
(cons (apply max (cdr vals))
(cons curr
(highest-right (cdr vals)))))
(highest-left (cdr vals) (max (car vals) curr)))))
(define (highest-left vals)
(define (highest-right vals curr)
(reverse (highest-right (reverse vals))))
(reverse (highest-left (reverse vals) curr)))
;
;
(if (< (length chart) 3) ; catch the end cases
(if (< (length chart) 3) ; catch the end cases