给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
第一种方法 :
var twoSum = function (nums, target) {
let arr = [];
let num1 = null;
let num2 = null;
// 前一项加上后面每一项进行判断
for (let i = 0; i < nums.length; i++) {
num1 = nums[i];
for (let j = i + 1; j < nums.length; j++) {
num2 = nums[j];
if (num1 + num2 === target) {
arr = [];
arr.push(i);
arr.push(j);
return arr; // 只要满足就会返回,无法计算之后满足的数据
}
}
}
};
第二种方法 :
let twoSum = function (nums, target) {
// 每次取出一项,用这一项减target,查看结果是否在数组中
let i = 0;
let leng = nums.length
let arr = [];
while (leng > 1) {
let num = nums.pop();
let a = target - num;
if (nums.indexOf(a) !== -1) {
arr = [];
let index = nums.indexOf(a, 0);
arr.push(index);
arr.push(leng - 1);
break;
} else {
leng—;
}
}
return arr;
}
第三种方法 :
let twoSum = function (nums, target) {
// 每次取出一项,用这一项减target,查看结果是否在数组中
let map = new Map()
let result = []
nums.map((item, i) => {
if (map.has(item)) {<br /> result = [i, map.get(item)]<br /> }<br /> map.set(target - item, i)})<br /> return result<br /> }
