*给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。*
1.哈希解法
var twoSum = function(nums, target) {
let len = nums.length;
// 创建 MAP
const MAP = new Map();
for (let i = 0; i < len; i++) {
// 提取共用
let other = target - nums[i];
// 判断是否符合条件,返回对应的下标
if (MAP.get(other) !== undefined) return [MAP.get(other), i];
// 不符合的存入hash表
MAP.set(nums[i], i)
}
}
2.数组解法(思路一样)
function indexof(arr, val) {
let index;
arr.forEach((element, i) => {
if(element === val){
index = i;
}
});
return index;
}
function twosumn(arr, target) {
let arr1 = [];
for(let i=0; i<target.length; i++){
let other = target - arr[i];
if(arr1.includes(other)){
return [indexof(arr1, other), i];
}
arr1.push(arr[i]);
}
}