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 numbersnums
and a target numbertarget
. - 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 calledneeded
. - The function checks if
needed
exists as a key inmemo
. - 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 inmemo
, the function stores the current number and its index inmemo
. - 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