let arr=[11,8,6,22,3,9,0,1,44]
let target=23
//查找表法:哈希表,平衡二叉搜索树
//我的答案
const fn=(result,target) => {
for(let i=0;i<result.length;i++) {
for(let j=i+1;j<result.length;j++) {
if(result[i]+result[j]===target) {
return result[i]+"和"+result[j]
}
}
}
return null
}
console.log(fn(arr,target))
//Ai的解答 用了哈希表少了一层for循环,通过使用map来解决
function twoSumHash(nums, target) {
const map = new Map(); // 值 -> 索引
for (let i = 0; i < nums.length; i++) {
const need = target - nums[i];
if (map.has(need)) {
return [need, nums[i]]
}
map.set(nums[i], i);
}
return null;
}
console