题目:给定一个整数数组nums,和一个目标值target,请在nums数组中找到两个数字相加等于target,输出这两个整数的下标。 思路: 使用map(当然对象也可,但是性能相比map稍差些),循环nums,将当前循环下标a作为value,将目标值target减去当前循环项得到的值b作为key,储存到map中。问题在于对于b的理解,b其实就是我们要在nums中寻找的值,因为这个差值b加上刚才的循环项c即等于我们的目标值target,一旦找到这个差值,也就是我们要找的这个差值b所在的下标,另外就是当前循环项d。时间复杂度:O(n),空间复杂度:O(n) const sum = function (nums, target) { const map = new Map(); for (let index = 0, len = nums.length; index 使用对象处理 const sum2 = function (nums, target) { const obj = {}; for (let index = 0, len = nums.length; index 当然,如果嵌套两层循环也是可以实现这个需求的,但是时间复杂度:O(n2),空间复杂度:O(n) 关注微信公众号,解锁更多技术文章 |