力扣1.两数之和(JS)
- 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
你可以按任意顺序返回答案。
第一种方法:两层for循环,暴力破解。
var twoSum = function(nums, target) {
for(var i = 0;i < nums.length;i++){
for(var j = i+1;j < nums.length;j++){
if(nums[i]+nums[j] === target){
return [i,j];
}
}
}
};
第二种方法:查找表法,在遍历的同时记录数组的信息,省去一层循环。
//如果target-nums[i]不存在temp中
//将第一个数组的下标和nums[下标]的值存到temp中
var twoSum = function(nums, target) {
var dis;
var temp = [];
for(var i = 0;i < nums.length;i++){
dis = target - nums[i];
if(temp[dis]!=undefined){
return [temp[dis],i];
}
temp[nums[i]] = i;
}
};