1. Two Sum
Question
https://leetcode.com/problems/two-sum/
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
Solution
Map the value to its index as we loop, so that later we can check the index of the reduced value with O(1).
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let indices = {}
for (let i = 0; i < nums.length; i += 1) {
if (typeof indices[target - nums[i]] !== 'undefined') {
return [indices[target - nums[i]], i]
}
indices[nums[i]] = i
}
};