// solution to: https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/ (function :Array twosum [:Array numbers target] (let [di (new Map)] (doFor [i num] (enumerate numbers 1) // (print "$i $num") (if (di.exists (- target num)) (return [(dictGet di (- target num)) i])) (dictSet di num i))) (return null)) (assert (= (.toString [2 3]) (.toString (twosum [1 2 3 4 5 6] 5)))) (assert (= (.toString [1 2]) (.toString (twosum [2 7 11 15] 9)))) (assert (= (.toString [1 3]) (.toString (twosum [2 3 4] 6)))) (assert (= (.toString [1 2]) (.toString (twosum [-1 0] -1))))