【题目考察】:哈希法、数组
【目标复杂度】:O(n)
【解法】:
解法1: 双循环遍历数组,找nums[i] + nums[j] === target。
时间复杂度: O(n^2)O(n2)
空间复杂度: O(1)O(1)
解法2: 哈希法,数组
使用es6的Map结构实现哈希表。
【代码】:
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
if (map.has(target - nums[i])) {
return [map.get(target - nums[i]), i]
}
map.set(nums[i], i);
}
return []
};