1
0
mirror of https://github.com/janet-lang/janet synced 2024-06-14 01:16:48 +00:00
janet/examples/3sum.janet

14 lines
364 B
Plaintext
Raw Normal View History

2018-03-15 01:46:56 +00:00
(defn sum3
"Solve the 3SUM problem in O(n^2) time."
[s]
(def tab @{})
(def solutions @{})
(def len (length s))
(for k 0 len
(put tab s@k k))
(for i 0 len
(for j 0 len
(def k (get tab (- 0 s@i s@j)))
(when (and k (not= k i) (not= k j) (not= i j))
(put solutions {i true j true k true} true))))
2018-12-16 22:59:16 +00:00
(map keys (keys solution)))