给定一个整数数组nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍
样例
输入 [3,3] 6 => [0,1]
1.粗暴解法
let nums = [3, 6, 4, 5, 6, 7], target = 9
function getIndex(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]
}
}
}
console.log(getIndex(nums, target)) // [0, 1]
- 使用indexOf查找
for (let i = 0; i < nums.length; i++) {
var diff = target - nums[i]
const j = nums.indexOf( diff )
if( j != i && j != -1 ){
return [i, j]
}
}
// 【0,1】
- lastIndexOf从字符串尾端开始查找
for (let i = 0; i < nums.length; i++) {
var diff = target - nums[i]
const j = nums.lastIndexOf( diff )
if( j != i && j != -1 ){
return [i, j]
}
}
// 【0,4】