

Map 记录已经见过的数字和下标。每次先计算当前数字需要的补数,再去表里查;命中就返回答案,没命中才把当前数字写入表。这样可以把暴力枚举的两层循环,改成一次线性扫描。function twoSum(nums, target) {
const seen = new Map();
for (let i = 0; i < nums.length; i++) {
const need = target - nums[i];
if (seen.has(need)) {
return [seen.get(need), i];
}
seen.set(nums[i], i);
}
}This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.