Arrays and Iteration
Two-Sum with Hash Lookup
Walk the array once, storing seen values in a lookup table. When the complement is already present, the result indices are known.
Algorithm
Basic Implementation
basic.sql
.mode list
.headers off
CREATE TABLE arr(idx INTEGER PRIMARY KEY, val INTEGER);
INSERT INTO arr(idx, val) VALUES
(0, 2), (1, 7), (2, 11), (3, 4), (4, 5);
SELECT '[' || a.idx || ', ' || b.idx || ']'
FROM arr AS a
JOIN arr AS b ON a.idx < b.idx
WHERE a.val + b.val = 9
ORDER BY b.idx, a.idx
LIMIT 1;
Complexity
- Time: O(n) average
- Space: O(n)
Implementation notes
- Keep the explicit control flow. Library shortcuts would hide the state changes this lesson is meant to replay.
- The final output is intentionally small and deterministic for cross-language comparison.
execution replay
The checked-in replay follows the language-neutral state table for `array-two-sum-hash`.
cross-language comparison
This SQL DSA version keeps the same data and final output as every other DSA book in this wave.