diff --git a/javascript/_1.js b/javascript/_1.js index 1f7b8070ab..47e2bacb79 100644 --- a/javascript/_1.js +++ b/javascript/_1.js @@ -1,14 +1,29 @@ // Two sum - -var twoSum = function (nums, target) { - var sum = {} - for (var i = 0; i < nums.length; i++) { - if (!Object.prototype.hasOwnProperty.call(sum, (target - nums[i]))) { - sum[nums[i]] = i - } else { - return [i, sum[target - nums[i]]] +var twoSum = { + Solution1: function (nums, target) { + var sum = {} + for (var i = 0; i < nums.length; i++) { + if (!Object.prototype.hasOwnProperty.call(sum, (target - nums[i]))) { + sum[nums[i]] = i + } else { + return [i, sum[target - nums[i]]] + } + } + }, + Solution2: function (nums, target) { + var p1 = 0 + var p2 = nums.length - 1 + while (p1 < p2) { + if (nums[p1] + nums[p2] < target) { + p1 += 1 + } else if (nums[p1] + nums[p2] > target) { + p2 -= 1 + } else { + return [p1, p2] + } } } } -console.log(twoSum([2, 7, 11, 15], 9)) +console.log(twoSum.Solution1([2, 7, 11, 15], 9)) +console.log(twoSum.Solution2([2, 7, 11, 15], 9))