Continuous DSA Practice

Coding Academy & Algorithms

High-frequency data structures, graphs, design patterns, and dynamic programming with optimal Python implementations and complexity proofs.

Problems (4)

EasyArrays & Hash Table

Two Sum

Given an array of integers `nums` and an integer `target`, return indices of the two numbers such that they add up to `target`. You may assume that each input would have exactly one solution, and you may not use the same element twice.

Examples:

Input: nums = [2, 7, 11, 15], target = 9
Output: [0, 1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Input: nums = [3, 2, 4], target = 6
Output: [1, 2]

Constraints:

  • 2 <= nums.length <= 10^4
  • -10^9 <= nums[i] <= 10^9
  • Exactly one valid answer exists.

Optimal Python Solution:

Two Sum — Python Solution
python
def twoSum(nums: list[int], target: int) -> list[int]:
    seen = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in seen:
            return [seen[complement], i]
        seen[num] = i
    return []
Time Complexity:O(N) — single pass hash table lookup
Space Complexity:O(N) — stores up to N elements in dictionary