思路(双指针法)
使用两个指针。left指针指向数组头部,right指针指向数组尾部。在保证left<right的情况下,如果nums[left] + nums[right] < target,left指针右移;如果nums[left] + nums[right] > target,right指针左移;如果nums[left] + nums[right] == target,返回所求值。
代码
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
var left = 0;
var right = nums.length - 1;
while(left < right) {
if(nums[left] + nums[right] == target) return [nums[left],nums[right]];
while(left < right &&nums[left] + nums[right] < target) left++;
while(left < right && nums[left] + nums[right] > target) right--;
}
return [];
};