return statements
This commit is contained in:
@@ -28,15 +28,12 @@
|
||||
(defun :kiss.List<Int> pairWithSum [sum :kiss.List<Int> numbers]
|
||||
// Put the numbers in a map for random access. This gives an O(n) solution
|
||||
(deflocal :Map<Int,Int> numbersMap (new Map))
|
||||
(deflocal &mut pair null)
|
||||
(doFor number numbers
|
||||
(dict-set numbersMap number (- sum number))
|
||||
(let [requiredForPair (dict-get numbersMap number)]
|
||||
(when (numbersMap.exists requiredForPair)
|
||||
(set pair (or pair [number requiredForPair])))))
|
||||
|
||||
// TODO implement early return, break
|
||||
pair)
|
||||
(return [number requiredForPair]))))
|
||||
null)
|
||||
|
||||
(defun :kiss.List<Int> trioWithSum [sum :kiss.List<Int> numbers]
|
||||
(deflocal &mut trio null)
|
||||
@@ -44,5 +41,5 @@
|
||||
(let [requiredForTrio (- sum number)
|
||||
pairThatSatisfies (pairWithSum requiredForTrio numbers)]
|
||||
(when pairThatSatisfies
|
||||
(set trio [number (nth pairThatSatisfies 0) (nth pairThatSatisfies 1)]))))
|
||||
trio)
|
||||
(return [number (nth pairThatSatisfies 0) (nth pairThatSatisfies 1)]))))
|
||||
null)
|
||||
Reference in New Issue
Block a user