两数之和
解法一
使用两层循环暴力解
var twoSum = function(nums, target) {
for (let i = 0; i < nums.length; i++) {
let dif = target - nums[i]
for (let j = 1; j < nums.length; i++) {
if (dif == nums[j]) {
return [i,j]
}
}
}
};
解法二
每遍历一个元素,就计算出target与数组元素的差值dif,如果temp[dif]存在,则返回。否则就将原数组的键值对调,存入temp中。
var twoSum = function(nums, target) {
let temp = [];
for (let i = 0; i < nums.length; i++) {
let dif = target - nums[i];
if(temp[dif] != undefined) {
return [temp[dif], i]
}
temp[nums[i]] = i
}
};