← Hashing

Two Sum HashMap

Easy
Python
def two_sum(nums,target):
    seen={}
    for i,n in enumerate(nums):
        if target-n in seen: return [seen[target-n],i]
        seen[n]=i
Java
public int[] twoSum(int[] nums,int target){
    Map<Integer,Integer> seen=new HashMap<>();
    for(int i=0;i<nums.length;i++){
        if(seen.containsKey(target-nums[i])) return new int[]{seen.get(target-nums[i]),i};
        seen.put(nums[i],i);
    } return new int[]{};
}

Key Insight

HashMap lookup. 'in' vs containsKey(). enumerate vs manual index.

Python → Java Differences

  • Python dict vs Java HashMap
  • 'in' vs containsKey()
  • enumerate vs manual index
Python
def two_sum(nums,target):
    seen={}
    for i,n in enumerate(nums):
        if target-n in seen: return [seen[target-n],i]
        seen[n]=i
Java
public int[] twoSum(int[] nums,int target){
    Map<Integer,Integer> seen=new HashMap<>();
    for(int i=0;i<nums.length;i++){
        if(seen.containsKey(target-nums[i])) return new int[]{seen.get(target-nums[i]),i};
        seen.put(nums[i],i);
    } return new int[]{};
}

Algorithm Steps

1. Check complement in map
2. Store num->index