#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))