题目描述
解题思路
方法1:map遍历
- 加法转减法
- map
方法2: 双指针
注意:题中说这是一个递增数组,很容易想到双指针
代码实现
方法1:map遍历
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let m = new Map();
for (let i of nums) {
if (m.has(target-i)) {
return [i, target-i];
} else {
m.set(i,0)
}
};
return false
};
方法2:双指针
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let left = 0, right = nums.length - 1;
while (left < right) {
if (nums[left] + nums[right] < target) {
left++;
} else if (nums[left] + nums[right] > target) {
right--;
} else {
return [nums[left] , nums[right]];
};
};
return false
};