LeetCode TwoSum Explained!

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

[Adarshgupta is developer who love JavaScript, Creator who loves to Educate
Hey Adarsh here👋 I just created this page if you want to support me for my works.I will create more free blogs…buymeacoffee.com](https://www.buymeacoffee.com/Adarshgupta "buymeacoffee.com/Adarshgupta")