
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]
Constraints:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
- Only one valid answer exists.
Solutions:
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
const numMap = new Map();
for (let i=0; i<nums.length; i++) {
const complement = target - nums[i];
if(numMap.has(complement)) {
// if the complement exists in the map then return i
return [numMap.get(complement), i];
}
// now store the current number and its index in the map so we have,
numMap.set(nums[i], i);
}
// if no solution will be foun
return [];
};
const nums = [2,7,11,15];
const target = 9;
// now its time to console log the output
console.log(twoSum(nums, target));