Two Sum (Java) – Leetcode


Given an array of integers, return indices of the two numbers such that they add up to a specific target.


Input: numbers={2, 7, 11, 15}, target=9
Output: index1=0, index2=1



Java Solution

package com.programtak.beginner.tutorial.leetcode;

import java.util.HashMap;
import java.util.Map;

public class Solution {
	public static void main(String[] args) {
		int[] inputNums = {2,7, 11, 15};
		int[] output = twoSum(inputNums, 9);
		System.out.println("index[0] :"+ output[0] + ", index[1] :"+ output[1]);		
	public static int[] twoSum(int[] inputNums, int target) {
	    Map<Integer, Integer> map = new HashMap<>();
	    for (int i = 0; i < inputNums.length; i++) {
	        int complement = target - inputNums[i];
	        if (map.containsKey(complement)) {
	            return new int[] { map.get(complement), i };
	        map.put(inputNums[i], i);
	    throw new IllegalArgumentException("two sum solution not possible");


 index[0] :0, index[1] :1 


Time complexity depends on the put and containsKey operations of HashMap which is normally O(1). Time complexity of this solution is O(n).

Space complexity depends on the number of items stored in the hash table, which stores at most n elements, so it is O(n).

Like this post? Don’t forget to share it!

Leave a Reply

Your email address will not be published. Required fields are marked *