1. Introduction to Hash Tables
Hash tables enable O(1) average lookup and insertion. Below are 20 essential questions with complete solutions in C++, Java, Python, and JavaScript.
2. Core Hash Table Questions
Q1. Two Sum
cppvector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mp; for (int i = 0; i < nums.size(); i++) { int comp = target - nums[i]; if (mp.count(comp)) return {mp[comp], i}; mp[nums[i]] = i; } return {}; }
javapublic int[] twoSum(int[] nums, int target) { Map<Integer, Integer> mp = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int comp = target - nums[i]; if (mp.containsKey(comp)) return new int[]{mp.get(comp), i}; mp.put(nums[i], i); } return new int[]{}; }
pythondef twoSum(nums: list, target: int) -> list: mp = {} for i, num in enumerate(nums): comp = target - num if comp in mp: return [mp[comp], i] mp[num] = i return []
javascriptfunction twoSum(nums, target) { let mp = new Map(); for (let i = 0; i < nums.length; i++) { let comp = target - nums[i]; if (mp.has(comp)) return [mp.get(comp), i]; mp.set(nums[i], i); } return []; }
Time Complexity: O(n) | Space Complexity: O(n)
3. Summary Table
| Problem | Technique | Time | Space |
|---|---|---|---|
| Two Sum | Hash Map Lookup | O(n) | O(n) |
Practice all hash table problems on DSAMaster's practice platform.
