1、问题描述
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
可以假设每种输入只会对应一个答案,但是数组中同一个元素不能使用两遍。
2、解题思路
1、数组中至少要有两个元素
2、先找一个数作为参照,用最后一个数如何?
3、判断一下目标值与参照值的差值是否存在于数组中
3.1、差值不能是参照值,所以在取到最后一个值的时候直接pop()
4、存在则返回这个差值和参照值的索引
4.1、差值的索引使用indexOf()方法,参照值的索引则取pop()后数组的length
3、解题代码
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
while(nums.length > 1) {
let last = nums.pop();
if (nums.includes(target - last)) {
return [nums.indexOf(target - last), nums.length]
}
}
};