给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的两个整数,并返回他们在数组中的下标。
1、双重for循环
思路:双重for循环---第一层for循环,获取target与nums[i]之间的差值diff,再进行第二次循环,将差值(diff)与nums[j]进行比对,完全相等时,那么nums[i]与nums[j]和为target,数组下标为[i,j]
例:
function getTarget(nums,target) {
for(let i = 0;i < nums.length; i++) {
var diff = target - nums[i]
for(let j = i+1;j < nums.length; j++) { //避免i与j一样
if(nums[j] === diff) {
return [i,j]
}
}
}
}
var arr = [3,2,4]
console.log(getTarget(arr,6)); //[1,2]
2、indexOf
思路:利用indexOf查找不到返回-1的特性
function getTarget(nums,target) {
for(let i = 0 ;i < nums.length; i++) {
if(nums.indexOf(target - nums[i]) > -1) {
return [i,nums.indexOf(target - nums[i])]
}
}
}
var arr = [3,2,4]
console.log(getTarget(arr,6)); //[1,2]