ds-algo-study
Version:
Just experimenting with publishing a package
33 lines (30 loc) • 1.03 kB
JavaScript
// our two sum function which will return all pairs in the array that sum up to S
function twoSum(arr, S) {
var sums = [];
var hashTable = {};
for (var i = 0; i < arr.length; i++) {
var sumMinusElement = S - arr[i];
// check if this number exists in hash table
// if so then we found a pair of numbers that sum to S
if (hashTable[sumMinusElement.toString()] !== undefined) {
sums.push([arr[i], sumMinusElement]);
}
// add the current number to the hash table
hashTable[arr[i].toString()] = arr[i];
}
// return all pairs of integers that sum to S
return sums;
}
console.log(twoSum([3, 5, 2, -4, 8, 11], 7));
//Solution: Using for loop, running time = O(n^2)
// function twoSum(arr, S) {
// var sums = [];
// for (var i = 0; i < arr.length; i++) {
// for (var j = i + 1; j < arr.length; j++) {
// if (arr[i] + arr[j] === S) {
// sums.push([arr[i], arr[j]]);
// }
// }
// }
// return sums;
// }