Given an array of integers nums
and an integer target
, return indices of the two numbers such that they add up to target
example
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Because nums[0] + nums[1] == 9
, we return [0, 1]
.
//a lot of the faster look like this | |
var twoSum = function(nums, target) { | |
let map = new Map(); | |
for (let i = 0; i < nums.length; i++) { | |
if (map[target - nums[i]] !== undefined) { | |
return [map[target - nums[i]], i]; | |
} | |
map[nums[i]] = i; | |
} | |
}; |
var twoSum = function(nums, target) { | |
const obj = {} | |
for(let i = 0; i <nums.length; i++){ | |
if (obj[nums[i]] >=0){ | |
return [obj[nums[i]],i] | |
} | |
obj[target-nums[i]] = i | |
} | |
}; |
/** | |
* @param {number[]} nums | |
* @param {number} target | |
* @return {number[]} | |
*/ | |
var twoSum = function(nums, target) { | |
var result = []; | |
for ( var i = 0; i < nums.length; i++){ | |
var searchFor = target - nums[i]; | |
var idx = nums.indexOf(searchFor,i+1); | |
if (idx !== -1){ | |
//if index found | |
result.push(i); | |
result.push(idx); | |
} else { | |
//else continue | |
continue; | |
} | |
//result found, break | |
break; | |
} | |
return result; | |
}; |