blob: e15516086ba5876898f3ac8d92d308fa449b2831 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#lang racket
;; https://leetcode.com/problems/two-sum/description/
(define/contract (two-sum nums target)
(-> (listof exact-integer?) exact-integer? (listof exact-integer?))
(define h (make-hash))
(define (loop nums index)
(define n (car nums))
(define diff (- target n))
(if (hash-has-key? h diff)
(list index (hash-ref h diff))
(let ()
(hash-set! h n index)
(loop (cdr nums) (+ 1 index)))))
(loop nums 0))
|