# LeetCode TwoSum Explained!

--

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.

You can return the answer in any order.

**Example 1:**

`Input: nums = [2,7,11,15], target = 9`

Output: [0,1]

Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

**Example 2:**

`Input: nums = [3,2,4], target = 6`

Output: [1,2]

**Example 3:**

`Input: nums = [3,3], target = 6`

Output: [0,1]

## Solution

`/**`

* @param {number[]} nums

* @param {number} target

* @return {number[]}

*/

function twoSum(nums, target) {

const memo = {};

for (let i = 0; i < nums.length; i++) {

const needed = target - nums[i];

// console.log(needed)

let index2 = memo[needed];

// console.log("index2",index2,memo[needed],memo)

if (index2 != null) {

return [index2, i];

} else {

memo[nums[i]] = i;

}

}

}

explanation

- The code defines a function called
`twoSum`

that takes in an array of numbers`nums`

and a target number`target`

. - The function uses an object
`memo`

as a hash table to store numbers as keys and their indices as values. - The function iterates over each element in the
`nums`

array. - For each element, it calculates the difference between the
`target`

and the current element and stores it in a variable called`needed`

. - The function checks if
`needed`

exists as a key in`memo`

. - If it does, the function returns an array containing the stored value (index of the first number) and the current index (index of the second number).
- If
`needed`

does not exist in`memo`

, the function stores the current number and its index in`memo`

. - The function continues to iterate over the remaining elements in
`nums`

array. - If a pair of numbers that add up to the
`target`

is found, the function returns their indices in an array. - If no such pair is found, the function implicitly returns
`undefined`

.

Thanks for checking this out, I’m going to attend few interviews in the coming months and I want to share my learning with you.

Feel free to follow me Adarsh gupta

Buy me a coffee: https://www.buymeacoffee.com/Adarshgupta