两数之和Ts

86 阅读1分钟
 function twoSums(nums: number[], target: number): number[] | undefined {
 const map = new Map<number, number>(); // 创建一个 Map 对象用于存储数字和对应的索引

for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i]; // 计算目标值与当前数字的差值

if (map.has(complement)) {
  // 如果差值已经存在于 Map 中
  return [map.get(complement)!, i]; // 返回差值的索引和当前数字的索引组成的数组
  }

map.set(nums[i], i); // 将当前数字及其索引存入 Map 中
  }

return undefined; // 如果没有找到符合条件的数字,返回 undefined
  }

const arr = [1, 2, 3, 4, 5]; // 定义一个数组
const targetSum = 3; // 定义目标和

const add = twoSums(arr, targetSum); // 调用 twoSums 函数计算两个数字之和等于目标和的索引
console.log(add); // 输出结果[0,1]

//时间复杂度O(n),空间复杂度O(n)。