# JSDevLife

JavaScript Solutions, Competitive programming in JavaScript, MCQ in JS

# Two Sum program in javascript

## this question is asked in LeetCode as a Two Sum (Question Number -1) and its difficulty is Easy.

### Problem statement:

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 + nums == 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]
```

Constraints:

• `2 <= nums.length <= 104`
• `-109 <= nums[i] <= 109`
• `-109 <= target <= 109`
• Only one valid answer exists.

#### The easiest solution for two sum program in JS is as follows:

``````
var twoSum = function(nums, target) {

for(let i=0;i < nums.length;i++){
for(let j=i+1;j < nums.length;j++){
if((parseInt(nums[i])+parseInt(nums[j]))===target){
return [i,j];
}
}
}
};
```
```

#### Another optimized Solution of the two sum program in js is as follows

1. Create new map variable
2. Loop array
3. secondNumber = get second Number by subtracting target-arr[I]
4. if secondNumber is available in map then return [map.get(secondNumber),i]// in short indexes of the both numbers
5. else set map with value and index => map.set(arr[i],i) */
``````
const twoSum = (arr, target) => {
const map = new Map();
for (let i = 0; i < arr.length; i++) {
const secondNumber = target - arr[i];
if (map.has(secondNumber)) {
return [map.get(secondNumber), i];
} else {
map.set(arr[i], i)
}
}
return [];
}

console.log('Output should be [0,1]: ', twoSum([2, 7, 11, 15], 9));
console.log('Output should be [1,2]: ', twoSum([3, 2, 4], 6));
console.log('Output should be [1,3]: ', twoSum([2, 7, 11, 15], 22));
console.log('Output should be [1,2]: ', twoSum([2, 7, 11, 15], 18));
console.log('Output should be [0,2]: ', twoSum([2, 7, 11, 15], 13));
console.log('Output should be [0,4]: ', twoSum([2, 7, 11, 15, 32], 34));
```
```
Time complexity is O(n).