解法一, 两层for循环
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
function twoSum(nums, target) {
const res = new Array();
for (let i = 0; i < nums.length-1; i++) {
const element1 = nums[i];
for (let j = i+1; j < nums.length; j++) {
const element2 = nums[j];
if(element1+element2===target){
res[0] = i
res[1] = j
break
}
}
}
return res
}
解法2,map解法
系统给出的答案是更优解答
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
function twoSum(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
const res = target - nums[i]
if(map.has(res)){
return [map.get(res), i]
}
map.set(nums[i], i)
}
}