← Arrays

Two Sum

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> m=new HashMap<>();
    for(int i=0;i<nums.length;i++){
        if(m.containsKey(target-nums[i])) return new int[]{m.get(target-nums[i]),i};
        m.put(nums[i],i);
    } return new int[]{};
}

Key Insight

Hash map lookup. Python 'in' dict vs Java containsKey(). enumerate gives index+value.

Python → Java Differences

  • Python dict vs Java HashMap
  • enumerate vs manual index
  • 'in' vs containsKey()
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> m=new HashMap<>();
    for(int i=0;i<nums.length;i++){
        if(m.containsKey(target-nums[i])) return new int[]{m.get(target-nums[i]),i};
        m.put(nums[i],i);
    } return new int[]{};
}

Algorithm Steps

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